很难用谷歌搜索这个主题——太多的用户问题,我的问题是关于包开发的。我想让我的包的用户看到“npm WARN 更喜欢全局”当不是全局安装时。
我想npm install yo
以前有这样的警告,但现在没有了。至少我看不到。
我的环境:
› npm --version
1.4.10
› node -v
v0.10.28
本·福琼的回答 https://stackoverflow.com/a/24245686/45375指定如何一个 npm 包author可以指定一个包作为首选global安装(通过添加键值对"preferGlobal": true
to the package.json
file).
可悲的是,正如OP本人在评论中指出的那样,这是还不够always对用户触发警告安装这样的一个包locally.
从 npm 2.3.0 开始,在本地安装全局安装首选包时,行为如下:npm install <pkgName>
(即,没有-g
):
The 警告 -npm WARN prefer global <pkgName>@<ver> should be installed with -g
- is only触发,如果:
- 有一个valid
package.json
file在当前目录中,
-
并且它包含一个
dependencies
and/or optionalDependencies
key其值是一个对象(无论是否为空) - 除非手头的包恰好包含在其中。
实际上,这意味着运行时您不会看到警告npm install <pkgName>
(即,没有-g
)在以下场景中:
- 在不是 npm 包项目的目录中(没有
package.json
file).
- 在 npm package-project 目录中,碰巧没有runtime完全依赖(没有
dependencies
and/or optionalDependencies
键 - 相比之下,键devDependencies
and/or peerDependencies
独自做not触发警告)。
- 在 npm package-project 目录中恰好有
pkgName
已安装为(根据定义本地)runtime依赖性(关键dependencies
or optionalDependencies
).
请注意,即使--loglevel silly
不会改变这种行为,所以有目前没有办法强制执行无条件的显示警告.
将一个包指定为全局确实有一个无条件的然而,副作用是:在 npm 注册表中(http://npmjs.com http://npmjs.com),右侧边栏中显示的此类包的安装命令是npm install <pkgName> -g
;即,它确实包括-g
.
[更新:此功能不久前就被破坏了,并且截至 2015 年 9 月 14 日仍然被破坏 - 请参阅 https://github.com/npm/newww/issues/1017 https://github.com/npm/newww/issues/1017 ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)