我正在开发一个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 { }
如何让我的选项继续执行我的转换处理的所有文件?
答案 0 :(得分:1)
事情按预期工作。我没有仔细仔细阅读文档。转换不会应用于node_modules
中的文件。解决方案是将转换指定为全局或在package.json
内更新项目的node_modules
。一旦我做了其中任何一件事,我的代码就按预期工作了。