browserify转换选项正在消失

时间:2014-11-26 13:16:15

标签: javascript node.js browserify

我正在开发一个browserify转换器,我正在传递选项。

//excerpt from package.json of my application that is using my transform and extension
"browserify": {
  "transform": [
    ["mytransform", {"extensions": ["my-extension"] } ]
  ]
}

转换正在运行,并在第一个文件上调用,然后在该文件所依赖的文件上调用。我遇到的问题是我失去了选择。

在我的变换中我有

module.exports = function (file, options) {
  console.log('processing? ', file, options);
  options = options || {};
  options.extensions = options.extensions || [];
  var extensions = options.extensions.map(function(extensionId){
                                            return require(extensionId)();
                                          }),
      data = '';

  var stream = through(write, end);
  return stream;

  function write(buf) { data += buf; }
  function end() {
    var out = processFile(extensions, file, data);
    stream.queue(out || data);
    stream.queue(null);
  }
};

以下是输出。第一个文件有选项,但第二个文件中没有任何内容

processing?  /path/to/cascadingAmdDepWithPlugin.js { extensions: [ 'my-extension' ]}
processing?  /path/to/node_modules/dojo/number.js { }

如何让我的选项继续执行我的转换处理的所有文件?

1 个答案:

答案 0 :(得分:1)

事情按预期工作。我没有仔细仔细阅读文档。转换不会应用于node_modules中的文件。解决方案是将转换指定为全局或在package.json内更新项目的node_modules。一旦我做了其中任何一件事,我的代码就按预期工作了。