Я пытаюсь использовать 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;
И мой пакет .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 довольно большой, поэтому я не буду включать его здесь, но браузер заканчивает тем, что выдает ошибку
Неподготовлено ReferenceError: require не определен
У меня эта точно такая же настройка работает правильно с обычной версией браузера, используя эти команды
browserify -t reactify -r react -r ./src/App > ../webapp/static/bundle.js
И тогда я не получаю ошибку. Почему gulp -browserify не создает правильную настройку соответствия?