Node.js 如何仅在一个环境中启用browserify转换
我的项目布局如下:Node.js 如何仅在一个环境中启用browserify转换,node.js,npm,gulp,browserify,Node.js,Npm,Gulp,Browserify,我的项目布局如下: gulpfile.js node_modules/ foo/ bar/ 其中foo/和bar/模块实际上是我自己的代码,我想对其应用Browserify转换。(这是一种避免像require(“../../blah”)这样的相对路径的黑客,而不是能够编写require(“foo/pkg/blah”)) 由于Browserify的工作方式,我需要在foo/和bar/模块中都有一个package.json文件,其内容如下: { "browserify": {
gulpfile.js
node_modules/
foo/
bar/
其中foo/
和bar/
模块实际上是我自己的代码,我想对其应用Browserify转换。(这是一种避免像require(“../../blah”)
这样的相对路径的黑客,而不是能够编写require(“foo/pkg/blah”)
)
由于Browserify的工作方式,我需要在foo/和bar/模块中都有一个package.json
文件,其内容如下:
{
"browserify": {
"transform": ["rewireify"]
}
}
否则,Browserify将只对根模块应用转换,而不对子模块应用转换
但是我只想在运行测试时应用rewirequify
转换(它将依赖注入代码添加到每个模块中,我不想将其包含到生产构建中)
但是在顶层禁用rewireify
transform不会影响子模块
是否有办法仅在某些环境中启用某些Browserify转换?或者是一种基于环境只启用一些package.json
设置的方法
PS.我通过破解rewirequify
转换源代码找到了一个解决方法,但是实现它会很好,这样我就不需要进行转换了