Javascript browserify变换选项正在消失
我正在进行一个browserify转换,我正在传递选项Javascript browserify变换选项正在消失,javascript,node.js,browserify,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"] } ] ] } 转换正在工作,并在第一个文件上调用,然后在该文件所依赖的文件上调用。我面临的问
//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 { }
如何让我的选项执行到我的转换处理的所有文件?一切正常。我没有足够仔细地阅读文档。转换不应用于
节点\u模块中的文件
。解决方案是将转换指定为全局或更新节点\ u模块中项目的包.json
。一旦我做了这两件事中的任何一件,我的代码就如预期的那样工作。你是如何将带有选项的转换指定为全局的?Browserify转换只在其包.json中指定了转换的模块上运行。因此,如果projecta
依赖于projectb
,但只有projecta
指定了browserify转换,则只有该转换将在projecta
上运行。Browserify将在两个项目上运行,但仅对一个项目应用转换。您可以更新projectb
的package.json
,也可以指定转换是全局的。假设这是通过传递给变换选项的global
参数完成的。