Gulp 使用 browserify:找不到启动模块

Gulp with browserify: Cannot find start module

我遇到了与 Gulp with browserify: Cannot find module src/js/main.js 中描述的完全相同的问题:我有一个 JavaScript 项目,我可以从命令行使用 browserify 构建它,但在 gulp 中却不行.但是这个问题的解决方案对我不起作用。

从命令行:

browserify -t reactify ./js/inspector > static/js/inspector.js

完美运行。当我 运行 以下 gulp 任务时:

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,我并没有在任何地方有意配置它。

与提出另一个问题的本戴维斯不同,在我的路径开头添加 ./ 没有任何改变。

我不明白为什么 browserify 在 运行 到 gulp 时给出不同的、错误的输出。

更新:项目的目录结构:

gulpfile.js
node_modules/
js/                  (also contains subdirectories with JS code)
    inspector.js
static/
    js/
        inspector.js (built)

更新:当我通过 G运行t 运行 Browserify 时,我也得到了一个不同的文件,但它有效。

您可以尝试将 return 函数包装在 IIFC 中。

//======================================
// Task: browserify
//======================================
gulp.task('browserify', function() {
  return (function() {
    browserify(config.src)
      .bundle()
      .pipe(source(config.name))
      .pipe(gulp.dest(config.dest));
  })();
});

我在当前的项目中成功地使用了上述内容。

我有其他模块需要根模块,la:

var inspector = require('../../inspector');

这就是导致问题的原因(不知何故)。放入一个根本不需要的根模块使得 gulp + browserify 工作没有任何问题。

我会看看是否可以为 gulp / browserify 维护者创建一个最小的复制项目。