如何让我的 NPM 包在本地安装时显示“npm WARN Preferred Global”

2024-04-23

很难用谷歌搜索这个主题——太多的用户问题,我的问题是关于包开发的。我想让我的包的用户看到“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(使用前将#替换为@)

如何让我的 NPM 包在本地安装时显示“npm WARN Preferred Global” 的相关文章

随机推荐