很难用谷歌搜索主题——太多的用户问题,我的是关于包开发的。我希望我的包的用户在非全局安装时看到“npm WARN prefer global”。
我以为npm install yo
曾经有这样的警告,但现在没有了。至少我看不到。
我的环境:
› npm --version
1.4.10
› node -v
v0.10.28
很难用谷歌搜索主题——太多的用户问题,我的是关于包开发的。我希望我的包的用户在非全局安装时看到“npm WARN prefer global”。
我以为npm install yo
曾经有这样的警告,但现在没有了。至少我看不到。
我的环境:
› npm --version
1.4.10
› node -v
v0.10.28
Ben Fortune 的回答指定了 npm 包作者如何将包指定为首选全局安装(通过将键值对添加"preferGlobal": true
到package.json
文件中)。
可悲的是,正如 OP 本人在评论中指出的那样,这还不足以总是触发用户在本地安装此类软件包的警告。
npm install <pkgName>
从 npm 2.3.0 开始,在本地安装 global-installation-preferred 包时,使用(即不带)时的行为如下-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
已经安装为(根据定义为本地)运行时依赖项(在 keydependencies
或中optionalDependencies
)。请注意, even--loglevel silly
不会改变此行为,因此目前无法强制无条件显示 warning。
但是,将包指定为全局确实有一个无条件的副作用:在 npm 注册表 ( http://npmjs.com ) 中,右侧边栏中显示的此类包的安装命令是npm install <pkgName> -g
; 即,它确实包括-g
.
[更新:此功能前段时间中断,截至 2015 年 9 月 14 日仍然中断 - 请参阅 https://github.com/npm/newww/issues/1017 ]
preferGlobal
现在已弃用:
此选项用于触发 npm 警告,但不会再发出警告。它纯粹是为了提供信息。现在建议您尽可能将任何二进制文件安装为本地 devDependencies。