难以google the subj - 太多的用户问题,我的是关于包开发。我希望我的软件包的用户在全局安装时看到“npm WARN prefer global”。
我以为npm install yo
曾经有这样的警告,但现在却没有。至少我看不到它。
我的环境:
› npm --version
1.4.10
› node -v
v0.10.28
答案 0 :(得分:10)
Ben Fortune's answer指定 npm包作者如何将包指定为全局安装(通过添加键值对) "preferGlobal": true
文件package.json
。
可悲的是,正如OP自己在评论中指出的那样, 总是触发用户安装这样的包的警告本地 强>
从npm 2.3.0开始,使用npm install <pkgName>
(即没有-g
)在本地安装全局安装首选软件包时的行为如下:
警告 - npm WARN prefer global <pkgName>@<ver> should be installed with -g
- 仅触发,如果:
package.json
文件 dependencies
和/或optionalDependencies
键,其值是一个对象(无论是否为空) - 除非手头的包裹恰好包含在其中实际上,这意味着在以下情况下运行npm install <pkgName>
(即没有-g
)时,您将看不到警告:
package.json
文件)。dependencies
和/或optionalDependencies
键 - 相比之下,键{{1并且/或devDependencies
单独执行而不是触发警告)。peerDependencies
安装为(按定义本地)运行时依赖关系(在密钥pkgName
或{{1}中})。请注意,即使dependencies
也不会改变此行为,因此目前无法强制无条件显示警告。
将程序包指定为全局确实有一个无条件副作用,但是:在npm注册表(http://npmjs.com)中,右侧边栏中显示的安装命令用于此类程序包是optionalDependencies
;即它确实包括--loglevel silly
[更新:此功能已于前一段时间推出,截至2015年9月14日仍未解决 - 请参阅 https://github.com/npm/newww/issues/1017]
答案 1 :(得分:9)
答案 2 :(得分:0)
preferGlobal
现在是deprecated:
此选项用于触发npm警告,但不再显示 警告。纯粹出于信息目的。就是现在 建议您将任何二进制文件安装为本地devDependencies 尽可能。