我正在使用Browserify API编写一个小脚本并遵循自述文件here。
一切正常,除非我需要传递advanced options下列出的标志,因为API似乎没有覆盖。我想传递的是#logo{
float:left;
}
#menu {
float:left;
margin-left: calc(50% - 500px);
}
标志。
--node
在命令行中,这将转换为var b = browserify({
entries: ['src/index.js'],
cache: {},
ignoreWatch: ['**/node_modules/**', './dist/'],
packageCache: {},
plugin: [watchify, babelify],
debug: true,
node: true // => this options does not actually exist, so it does nothing
});
b.on('update', bundle);
function bundle() {
b.bundle()
.pipe(fs.createWriteStream('bundle.js'));
}
(并且它可以工作)。
我认为文档中的行说:
所有其他选项都会直接转发到module-deps和browser-pack。
可能包含一些帮助,但我不清楚如何。关于这个的任何指示?
答案 0 :(得分:2)
在查看Browserify的源代码后,我想出了自己的问题的答案。
我只是运行watchify src/index.js --node -o bundle.js
命令并记录传递给Browserify.prototype._createPipeline
函数的选项。
在我的情况下,代码将成为:
var b = browserify({
entries: ['src/index.js'],
cache: {},
ignoreWatch: ['**/node_modules/**', './dist/'],
packageCache: {},
plugin: [watchify, babelify],
debug: true,
fullPaths: false,
builtins: false,
commondir: false,
bundleExternal: true,
basedir: undefined,
browserField: false,
detectGlobals: true,
insertGlobals: false,
insertGlobalVars:
{ process: undefined,
global: undefined,
'Buffer.isBuffer': undefined,
Buffer: undefined },
ignoreMissing: false,
standalone: undefined
});
我最终从我的脚本中删除了一些这些选项,因为大多数只是默认值,但我会将它们留在答案中供将来参考,希望其他人也能从中受益。