我有一个网页应用:fooapp。我有一个包裹。Json在根目录中。我想在特定的node_modules目录中安装所有依赖项。我怎么做呢?

我想要什么

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

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目录中。

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


当前回答

在我的情况下,我需要做

sudo npm install  

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

其他回答

在我的情况下,我需要做

sudo npm install  

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

运行:

npm install

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

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

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

ln -s ../node_modules node_modules
npm i --force

从documention:

-f或——force参数将强制npm获取远程资源,即使磁盘上存在本地副本

只是执行

sudo npm i --save

这是所有