我有一个像这样的项目布局:
gulpfile.js
node_modules/
foo/
bar/
foo/
和bar/
模块实际上是我自己的代码,我想要应用Browserify转换。 (这是避免像require("../../blah")
这样的相对路径的黑客,而是能够写require("foo/pkg/blah")
。)
由于Browserify的工作方式,我需要在foo /和bar / modules中都有一个package.json
文件,内容如下:
{
"browserify": {
"transform": ["rewireify"]
}
}
否则Browserify只会将转换应用于根模块,但不会应用于子模块。
但是我只想在运行测试时应用rewireify
转换(它将依赖注入代码添加到我不希望包含在生产版本中的每个模块中)。
但是,在顶级禁用rewireify
转换并不会影响子模块。
有没有办法只在某些环境下启用一些Browserify转换?或者也许只能根据环境启用某些package.json
设置?
PS。我通过攻击rewireify
转换源找到了解决方法,但实现它会很好,所以我不需要分叉变换。