Javascript 用browserify吞咽:找不到启动模块
我有一个与中描述的问题几乎完全相同的问题:我有一个JavaScript项目,我可以从命令行使用browserify构建它,但不能用gulp。但这个问题的解决方案对我来说并不适用 从命令行:Javascript 用browserify吞咽:找不到启动模块,javascript,gulp,browserify,Javascript,Gulp,Browserify,我有一个与中描述的问题几乎完全相同的问题:我有一个JavaScript项目,我可以从命令行使用browserify构建它,但不能用gulp。但这个问题的解决方案对我来说并不适用 从命令行: browserify -t reactify ./js/inspector > static/js/inspector.js 工作完美。当我运行以下吞咽任务时: gulp.task('browserify', function() { return browserify({ tra
browserify -t reactify ./js/inspector > static/js/inspector.js
工作完美。当我运行以下吞咽任务时:
gulp.task('browserify', function() {
return browserify({
transform: ['reactify'],
entries: ['./js/inspector.js']
})
.bundle()
.pipe(source('inspector.js'))
.pipe(gulp.dest('./static/js/'));
});
然后运行它,我在控制台中得到以下错误:
Error: Cannot find module '../../inspector'
而且生成的文件的长度与CLI文件相同,但模块顺序不同。这让我很困惑
我的全局和本地模块中都有相同版本的browserify,而且我没有在任何地方故意配置它
与本·戴维斯(Ben Davis)提出的另一个问题不同,在我的人生道路的起点添加一个./不会改变任何事情
我不明白为什么browserify在吞咽时会给出一个不同的、断断续续的输出
更新:项目的目录结构:
gulpfile.js
node_modules/
js/ (also contains subdirectories with JS code)
inspector.js
static/
js/
inspector.js (built)
更新:当我通过Grunt运行Browserify时,我也会得到一个不同的文件,但它可以工作。您可以尝试将返回函数包装到IIFC中
//======================================
// Task: browserify
//======================================
gulp.task('browserify', function() {
return (function() {
browserify(config.src)
.bundle()
.pipe(source(config.name))
.pipe(gulp.dest(config.dest));
})();
});
我在当前项目中成功地使用了上述功能。我有其他需要根模块的模块,例如:
var-inspector=require('../../inspector')代码>
这就是问题的原因(不知何故)。在根模块中加入其他任何东西都不需要的根模块,使得gulp+browserify可以毫无问题地工作
我会看看是否能为gulp/browserify维护人员创建一个最小的复制项目。你能告诉我们你的文件夹结构吗?@joshvito我已经添加了它。可能是@SomeKittens的重复,但它不是,我在一开始就专门链接到这个问题,并解释为什么它不是重复的。嗯,让我澄清一下:这或多或少是同一个问题,但解决方案在我的情况下不起作用。我尝试过这个,同样的效果:生成了一个大小相同的不同文件,我在浏览器中收到了相同的错误消息。