[英]How can I install a npm package locally in Meteor and make changes on it?
[英]How do I make my NPM package show “npm WARN prefer global” when installing locally
难以google the subj - 太多的用户问题,我的是关于包开发。 我希望我的软件包的用户在全局安装时看到“npm WARN prefer global” 。
我以为npm install yo
曾经有过这样的警告,但现在却没有。 至少我看不到它。
我的环境:
› npm --version
1.4.10
› node -v
v0.10.28
Ben Fortune的回答指定了npm包作者如何将包指定为 "preferGlobal": true
全局安装 (通过添加键值对"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
键 - 相反,键devDependencies
和/或peerDependencies
本身不会触发警告)。 pkgName
安装为(通过定义本地) 运行时依赖项(在key dependencies
或optionalDependencies
)。 请注意,即使--loglevel silly
也不会改变此行为,因此目前无法强制无条件显示警告 。
将包指定为全局确实具有一个无条件的副作用,但是:在npm注册表( http://npmjs.com )中,右侧边栏中显示的安装命令是npm install <pkgName> -g
; 即,它确实包括-g
。
[ 更新:此功能已经破了一段时间,截至2015年9月14日仍然存在 - 请参阅 https://github.com/npm/newww/issues/1017 ]
preferGlobal
现已弃用 :
此选项用于触发npm警告,但不会再发出警告。 纯粹出于信息目的。 现在建议您尽可能将任何二进制文件安装为本地devDependencies。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.