我如何安装包。使用NPM在当前目录中创建Json依赖项

我有一个web应用程序:fooapp。我在根结点中有一个package.json。我想在一个特定的node_modules directory中安装所有依赖项。我怎么做呢?

我想要什么

假设我有两个widget依赖项。我想以这样的目录结构结束:

node_modules/
widgetA
widgetB
fooapp/
package.js
lib
..

我得到了什么

当我运行npm install fooapp/时,我得到这个:

node_modules/
fooapp/
node_modules/
widgetA
widgetB
package.js
lib/
..
fooapp/
package.js
lib/
..

npm在node_modules目录下复制了我的app目录,并将包安装在另一个 node_modules目录下。

我知道这对于安装包是有意义的。但是我没有require()我的web应用程序在其他东西里面,我直接运行它。我正在寻找一种简单的方法来安装我的依赖到一个特定的node_modules目录。

417148 次浏览

运行:

npm install

在你的应用程序目录(即where包。)将安装依赖你的应用程序,而不是安装它作为一个模块,如这里所述。它们将相对于您的包放置在./node_modules中。json文件(它实际上比这个稍微复杂一点,所以检查这里是NPM文档)。

如果你愿意,你可以自由地将node_modules目录移动到应用程序的父目录,因为节点的'require'机制理解这一点。然而,如果你想用install/update更新你的应用的依赖,npm将不会看到重新定位的'node_modules',而是创建一个新的dir,同样是相对于package.json。

为了防止这种情况,只需从你的应用程序目录中创建一个指向重新定位的node_modules的符号链接:

ln -s ../node_modules node_modules

在我的情况下,我需要做

sudo npm install

我的项目是在/var/www所以我还需要设置适当的权限。

只是执行

sudo npm i --save

这是所有