我正在尝试复制我在将 React 添加到现有应用程序中时遇到的问题。不幸的是,目前我遇到了一个完全不同的问题,只是试图重现原始问题。
基本结构是由browserify编译的新基本模块,然后与现有模块连接,该模块现在引导应用程序。
var gulp = require('gulp');
var browserify = require('browserify');
var reactify = require('reactify');
var source = require('vinyl-source-stream');
var concat = require('gulp-concat');
gulp.task('default', ['browserify', 'concat']);
gulp.task('browserify', function(){
return browserify({
entries: ['./src/app.js'],
transform: [["reactify", {"es6": true}]],
extensions: ['.jsx'],
debug: true,
standalone: 'App'
}).bundle()
.pipe(source('browserifyPackage.js'))
.pipe(gulp.dest('./oldSrc'));
})
gulp.task('concat', ['browserify'], function(){
return gulp.src(['./oldSrc/browserifyPackage.js', './oldSrc/app.js'])
.pipe(concat('app.js'))
.pipe(gulp.dest('./'));
})
新模块非常简单
window.React = require('react');
module.exports = {
TodoSection: require('./todoSection')
}
然后旧应用程序看起来像这样
_.extend(App, (function(){
return { init: function(){
React.render(new App.TodoSection(), document.getElementById('body'));
}}
}))
window.addEventListener('load', function() { App.init(); }, false).
当我尝试使用此文件时,尽管我在浏览器化中从前奏中得到"意外的行尾.js。我没有看到明显的问题,但我显然错过了一些东西。
完整的示例项目可以在Github上找到
问题可能是此行末尾的句点:
window.addEventListener('load', function() { App.init(); }, false).