繁体   English   中英

在本地安装时,如何让我的NPM包显示“npm WARN prefer global”

[英]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": truepackage.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 )时您将看不到警告

  • 在一个不是npm包项目的目录中(没有package.json文件)。
  • 在npm package-project目录中,根本没有运行时依赖项(没有dependencies和/或optionalDependencies键 - 相反,键devDependencies和/或peerDependencies本身不会触发警告)。
  • 在npm package-project目录中碰巧已经将pkgName安装为(通过定义本地) 运行时依赖项(在key dependenciesoptionalDependencies )。

请注意,即使--loglevel silly也不会改变此行为,因此目前无法强制无条件显示警告

将包指定为全局确实具有一个无条件的副作用,但是:在npm注册表( http://npmjs.com )中,右侧边栏中显示的安装命令是npm install <pkgName> -g ; 即,它确实包括-g
[ 更新:此功能已经破了一段时间,截至2015年9月14日仍然存在 - 请参阅 https://github.com/npm/newww/issues/1017 ]

你需要指定

"preferGlobal": true

在你的package.json

文档

preferGlobal现已弃用

此选项用于触发npm警告,但不会再发出警告。 纯粹出于信息目的。 现在建议您尽可能将任何二进制文件安装为本地devDependencies。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM