如何在其他目录中redirectsearchnode_modules
嗨,我想要从目录不是目前npm模块npm模块。 由于涉及的依赖性,全局模块不是解决scheme。 我想拥有一个容器,包含我已下载的所有模块,并将require
redirect到该目录而不是当前目录。 这样,我所有的项目都可以像这样的相对pathsearch模块../
例如。
在这里你可以使用npm link
。
例如,
假设在/User/you/modules
有10个本地节点包存储库(每个包中包含package.json
),并且您的项目位于/User/you/project
。
您只需将/User/you/modules
目录中的所有模块链接到/User/you/project
。
cd /User/you/project find /User/you/modules/* -type d -maxdepth 0 -exec npm link {} \;
现在,您可以在/User/you/project
使用/User/you/modules
中的所有模块,而无需相对path。
所以,你现在可以;
require('package-name')
package-name
取自package.json
,而不是来自目录名。
代替;
require('../modules/package-name')
干杯。
您可以在运行应用程序之前/之前设置NODE_PATH
环境variables,这将允许您将自己的目录添加到节点试图parsing程序包的path中。
下面的例子似乎运行得很好,如下所示: NODE_PATH=./lib node app.js
app.js
require('api')();
LIB / api.js
module.exports = () => console.log('hello');
这里有一个有趣的Gist ,其中包括一些其他的路线,如果上述不适合你。 在一些着名的Node.js人员之间的评论中也有一些有趣的讨论。