[英]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.