npm - 为不同文件夹中的包安装依赖项?

Flo*_*rin 127 node.js npm

我有以下目录结构:

/some_project
    source.js
    package.json
Run Code Online (Sandbox Code Playgroud)

我想安装some_project的依赖项.我知道我可以进入some_project,然后运行npm install

但我想知道如果不改变目录是否可能?就像是

npm install some_project/package.json 
Run Code Online (Sandbox Code Playgroud)

cou*_*udy 322

您可以将npm install <folder>变量与--prefix选项一起使用.在您的方案中,文件夹和前缀将是相同的:

npm --prefix ./some_project install ./some_project
Run Code Online (Sandbox Code Playgroud)

  • 第二个`./ some_project`不是必需的 (9认同)
  • 谢谢你的回答.是否需要第二个`./ some_project`更清楚了吗? (7认同)
  • 顺便说一下,它在目的地创建了空的`etc`文件夹,这是一个已知的bug https://github.com/npm/npm/pull/7249 (5认同)
  • 这是这个问题的真正答案.谢谢@coudy. (4认同)
  • 这似乎在Windows 10上对我不起作用.它在当前目录中安装依赖项,只是在子文件夹中放入一个符号链接. (4认同)
  • 这是最好的答案. (2认同)
  • 这应该被标记为正确的答案,尽管我不认为最后的`./ some_project`参数是必需的 (2认同)
  • 第二个 `some_project` 绝对是必需的,至少在 Windows 上是这样。 (2认同)

Lin*_*iel 42

更新:由于该--prefix选项存在,我现在投票给@ coudy这个问题的答案.原答案如下:

不,npm将始终安装在当前目录中,或者-g在系统范围的node_modules中安装.您可以使用子shell完成此操作,但这不会影响您当前的目录:

(cd some_project && npm install)
Run Code Online (Sandbox Code Playgroud)

括号使它在子shell中运行.