繁体   English   中英

全局可用时不要通过npm install安装本地模块

[英]Do not install local modules via npm install when global available

如何配置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用于需要全局安装的东西,例如,npm脚本中的npx npx standard 无论全球存在如何,都可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM