Gulp Browserify在名称与内置名称冲突时隐藏模块

Gulp Browserify在名称与内置名称冲突时隐藏模块,gulp,browserify,Gulp,Browserify,我有一个名为常量的模块。Browserify未能绑定此模块,因为其名称与lib/builtins中定义的内置模块冲突: 这种效果可以在生成的代码中观察到。例如,依赖于常数的模块显示: 我们看到模块12依赖于模块2的常数索引。索引为2的模块定义为: 2:[ function(require,module,exports){ module.exports={ "O_RDONLY": 0, "O_WRONLY": 1, "O_RDWR": 2

我有一个名为常量的模块。Browserify未能绑定此模块,因为其名称与lib/builtins中定义的内置模块冲突:

这种效果可以在生成的代码中观察到。例如,依赖于常数的模块显示:

我们看到模块12依赖于模块2的常数索引。索引为2的模块定义为:

2:[
  function(require,module,exports){
    module.exports={
      "O_RDONLY": 0,
      "O_WRONLY": 1,
      "O_RDWR": 2
      // ...
    }
  },
  {}
]
这些O_*常量是在constants browserify中定义的,而不是在my constants模块中定义的

我在Gulp中使用NPM包,并指定以下内容:

我曾希望将内置指定为[]我也尝试过{}会覆盖此行为,但它似乎只会将模块解析为生成的代码中未定义的模块:

12:[
  function(require,module,exports){...},
  {"util":6,"constants":undefined}
 ]
问题:

主要:有没有办法告诉browserify不要尝试更换我的模块? 为什么browserify要指定这些内置项?我看不出有什么需要。
我发现唯一有效的方法是手动排除与之发生冲突的内置项

假设您与常量和null发生冲突,您将使用:

browserify('./main.js', {
    builtins: {constants:null, util:null}
});
我创建了一个。
return browserify('./main.js', {
        basedir: './scripts/app/',
        paths: ['./scripts/app/'],
        builtins: []
    })
    .bundle()
    .pipe(source('main.js'))
    .pipe(gulp.dest('dist'));
12:[
  function(require,module,exports){...},
  {"util":6,"constants":undefined}
 ]
browserify('./main.js', {
    builtins: {constants:null, util:null}
});