我有一个Web应用程序: fooapp 。我有package.json根。我想将所有依赖项安装在特定的中node_modules directory。我该怎么做呢?
package.json
node_modules directory
可以说我有两个widget依赖项。我想以这样的目录结构结束:
widget
node_modules/ widgetA widgetB fooapp/ package.js lib ..
当我跑步时,npm install fooapp/ 我得到以下信息:
npm install fooapp/
node_modules/ fooapp/ node_modules/ widgetA widgetB package.js lib/ .. fooapp/ package.js lib/ ..
npm在node_modules目录中复制我的应用程序目录,并将软件包安装在 另一个 node_modules目录中。
我了解这对于安装软件包很有意义。但是我不在require()其他地方使用Web应用程序,而是直接运行它。我正在寻找一种简单的方法来将我的依赖项安装到特定的node_modules目录中。
require()
运行:
npm install
从您的应用程序目录中(即其中的package.json所在地)将安装依赖 于 你的应用程序,而不是将它安装为一个模块,如本文所述。它们将相对于package.json文件放置在./node_modules中(实际上比这稍微复杂一些,因此请在此处查看npm docs)。
您可以随意将node_modules目录移动到应用程序的父目录,因为node的’require’机制可以理解这一点。但是,如果您想通过安装/更新来更新应用程序的依赖关系,npm将不会看到已重定位的“ node_modules”,而是将创建一个新的目录,同样相对于package.json。
为防止这种情况,只需从您的应用程序目录创建一个指向重新定位的node_modules的符号链接:
ln -s ../node_modules node_modules