Browserify api:如何将高级选项传递给脚本

时间:2015-12-15 00:18:51

标签: javascript node.js browserify

我正在使用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。

可能包含一些帮助,但我不清楚如何。关于这个的任何指示?

1 个答案:

答案 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
});

我最终从我的脚本中删除了一些这些选项,因为大多数只是默认值,但我会将它们留在答案中供将来参考,希望其他人也能从中受益。