0

如何配置 package.json 使得全局可用的依赖项不会在本地再次安装?

例如,我有一个将 jshint 列为 dev-dependency 的项目;但是,我已经全局安装了 jshint,我希望这个模块使用全局 jshint。

4

2 回答 2

1

不确定您要做什么,但无论如何在代码中使用全局依赖项都不是首选方式。

要获取一些信息,请键入npm help folders,这里是 tl;dr 部分:

  • 本地安装(默认):将东西放在当前包根目录的 ./node_modules 中。
  • 全局安装(使用 -g):将内容放在 /usr/local 或安装节点的任何位置。
  • 如果您要 require() 它,请在本地安装它。
  • 如果要在命令行上运行它,请全局安装它。
  • 如果两者都需要,则将其安装在两个位置,或使用 npm 链接。

因此,在您的情况下,最后一项link是答案:https ://docs.npmjs.com/cli/link 。

您需要npm link jshint在基本文件夹中运行。它将 node_modules/jshint 链接到全局模块。这将创建到二进制文件的符号链接,但是,您不能在require()代码的某些位置使用它。如上所述,全局包将在命令行上运行,因此它们是二进制文件。

于 2015-09-21T01:28:25.803 回答
0

毕竟我最终使用npx了需要全局安装的东西,例如npx standard在 npm 脚本中。无论全球存在都有效。

于 2018-12-27T07:57:23.450 回答