Javascript 用browserify吞咽:找不到启动模块

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

我有一个与中描述的问题几乎完全相同的问题:我有一个JavaScript项目,我可以从命令行使用browserify构建它,但不能用gulp。但这个问题的解决方案对我来说并不适用

从命令行:

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的重复,但它不是,我在一开始就专门链接到这个问题,并解释为什么它不是重复的。嗯,让我澄清一下:这或多或少是同一个问题,但解决方案在我的情况下不起作用。我尝试过这个,同样的效果:生成了一个大小相同的不同文件,我在浏览器中收到了相同的错误消息。