如何设置与节点包名的缺省/回退范围需要()
我使用的是特定的模块在我的节点代码:
const example = require('example');
然而这个模块是缓慢的更新,所以我已付出,并根据我自己对npmjs范围与我的更新发布它。但是现在用我自己的模块,我必须改变我的代码每次使用:
const example = require('@my-username/example');
这里的问题是,我将不得不承担一堆全国各地的许多文件的改变重命名的模块,然后当上游合并我变成正式版,我将不得不再次更新我的代码从require()
所有取出的范围操作这些文件,然后将其添加回来,如果我有更多的变化是缓慢的接受,等等。
有没有一种方法,我可以告诉节点或NPM,如果require()
找不到名称中没有范围模块,以然后检查@scope
所有node_modules
文件夹以查看是否有匹配呢?
如果这是可能的话,我将只需要与相关的包装版本和代码,我在我的叉子和正式版之间切换本身可以保持不变更新package.json
。
您可以使用module-alias实现它
这会减慢你的启动,但是让你写这一切的逻辑为每一个需要你在你的应用程序中进行。
const moduleAlias = require('module-alias')
// Custom handler function (starting from v2.1)
moduleAlias.addAlias('request', (fromPath, request, alias) => {
console.log({
fromPath,
request,
alias,
});
return __dirname + '/my-custom-request'
})
require('request')