gpt4 book ai didi

node.js - 在本地安装时如何让我的 NPM 包显示 "npm WARN prefer global"

转载 作者:搜寻专家 更新时间:2023-10-31 22:55:46 24 4
gpt4 key购买 nike

很难用谷歌搜索这个主题——用户问题太多,我的是关于包开发的。我希望我的包的用户在非全局安装时看到“npm WARN prefer global”

我以为 npm install yo 曾经有这样的警告,但现在没有了。至少我看不到。

我的环境:

  › npm --version
1.4.10
› node -v
v0.10.28

最佳答案

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)时您不会看到警告:

  • 在一个不是 npm 包项目的目录中(没有 package.json 文件)。
  • 在恰好完全没有运行时依赖项的 npm 包项目目录中(没有 dependencies 和/或 optionalDependencies 键 - 相比之下,单独的键 devDependencies 和/或 peerDependencies 触发警告)。
  • 在一个 npm 包项目目录中,该目录恰好已经安装了 pkgName 作为(根据本地定义)运行时 依赖项(在关键 dependenciesoptionalDependencies 中)。

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

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

关于node.js - 在本地安装时如何让我的 NPM 包显示 "npm WARN prefer global",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24245619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com