Gulp Browserify在名称与内置名称冲突时隐藏模块
我有一个名为常量的模块。Browserify未能绑定此模块,因为其名称与lib/builtins中定义的内置模块冲突: 这种效果可以在生成的代码中观察到。例如,依赖于常数的模块显示: 我们看到模块12依赖于模块2的常数索引。索引为2的模块定义为: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
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}
});