【发布时间】:2014-08-03 03:06:38
【问题描述】:
我正在尝试使用 gulp-browserify 生成一个 bundle.js 文件,该文件可以包含到客户端的浏览器中并开始渲染 React 组件。
这是我的 App.js 文件:
/** @jsx React.DOM */
var React = require('react');
var App = React.createClass({
render: function() {
return <h1>Hello {this.props.name}!</h1>;
}
});
module.exports = App;
还有我的 package.json:
"name":"hellosign-gulp",
"version":"0.1.1",
"dependencies": {
"gulp": "3.5.x",
"gulp-browserify": "0.5.0",
"reactify": "~0.8.1",
"react": "^0.10.0",
"gulp-react": "0.2.x"
}
}
还有我的 gulpfile
var gulp = require('gulp'),
react = require('gulp-react'),
browserify = require('gulp-browserify');
gulp.task('brow-test', function() {
// Single entry point to browserify
gulp.src('./src/App.js', {read: false})
.pipe(browserify({
insertGlobals : true,
transform: ['reactify'],
extensions: ['.jsx'],
debug :false.
}))
.pipe(gulp.dest('.'))
});
现在,当我运行“brow-test”时,我将输出文件重命名为 bundle.js,并将其包含在浏览器的 HTTP 响应中。 bundle.js 文件很大,所以我不会在这里包含它,但浏览器最终会抛出错误
Uncaught ReferenceError: require is not defined
我使用这些命令在普通版本的 browserify 中正确运行了完全相同的设置
browserify -t reactify -r react -r ./src/App > ../webapp/static/bundle.js
然后我没有得到错误。为什么 gulp-browserify 没有正确创建 require shim?
【问题讨论】:
-
我不相信设置是一样的,因为你在命令行上做
-r react -r ./src/App,(对gulp不太熟悉)。 -
您可以使用vinyl-source-stream 和gulp-buffer 在gulp 中运行常规的browserify。这就是我们所做的,因为 gulp-browserify 对我们来说一直不够好。
-
我仍然无法获得暴露的全局要求。我简化了问题并在这里发布了一个新问题:stackoverflow.com/questions/24329690/…
-
使用带有乙烯基源流的 browserify 是否改善了您的工作流程?
标签: javascript node.js gulp reactjs browserify