如何配置 package.json 使得全局可用的依赖项不会在本地再次安装?
例如,我有一个将 jshint 列为 dev-dependency 的项目;但是,我已经全局安装了 jshint,我希望这个模块使用全局 jshint。
如何配置 package.json 使得全局可用的依赖项不会在本地再次安装?
例如,我有一个将 jshint 列为 dev-dependency 的项目;但是,我已经全局安装了 jshint,我希望这个模块使用全局 jshint。
不确定您要做什么,但无论如何在代码中使用全局依赖项都不是首选方式。
要获取一些信息,请键入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()
代码的某些位置使用它。如上所述,全局包将在命令行上运行,因此它们是二进制文件。
毕竟我最终使用npx
了需要全局安装的东西,例如npx standard
在 npm 脚本中。无论全球存在都有效。