gpt4 book ai didi

node.js - npm install 不是首先检查全局版本吗?

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:25 24 4
gpt4 key购买 nike

我刚刚设置了一个测试,并尝试 npm installexpress 即使 express 已经存在于我的系统上。令我惊讶的是,它最终没有使用全局版本,而是在本地重新安装了版本!?是不是应该使用全局版本...或者我是否应该每次都使用 -g ,即使我只想使用现有的全局版本。否则,在本地安装任何东西有什么意义!?

最佳答案

答案是“不”。它不应该使用您的全局版本。

如果您想使用全局版本,则根本不需要执行 npm install,因为它已经安装了。

如果你这样做,显然,你是在说“我想将它安装到我的项目本地”。不仅如此:“我想安装其最新版本,除非它在我的 package.json 中与其他明确指定的版本一起声明”。

事实上,真正的问题是:为什么您不想在本地安装项目的依赖项?有更多版本不匹配问题吗?

正如 @ans human_singh 所说,最佳实践是始终执行npm install --save

当然,您可以使用全局安装的软件包。它对于快速测试代码可能很方便,您将在几个小时左右后删除这些代码。

但是,无论如何:如果您没有真正的硬盘磁盘或网络带宽问题,在本地安装所有依赖项将避免您将来遇到太多麻烦。

另一方面,将这些模块上传到代码存储库也是一个坏主意(也许这就是您试图避免的),因为对于不同版本的 Node ,如果不重建,大多数 native 模块将无法工作。但大多数 VCS 支持忽略不能上传的文件和/或目录。

例如,在 git(.gitignore 文件)中:

**/node_modules

总结:

  • npm init(如果您还没有这样做)。
  • npm install --save 用于所有项目依赖项。
  • npm install --save-dev 用于生产中不需要的依赖项(测试内容)。
  • 不要node_modules上传到您的 VCS。
  • 新 checkout 后:npm installnpm install --product(不安装开发依赖项)。
  • npm install -g 适用于您将在控制台中使用的工具。

这样,您就可以确定在生产(或其他开发环境)中每个包的版本完全相同。

最后,如果您想将某些软件包升级到最新版本,只需运行:

npm install --save <pagkage_name>@latest.

关于node.js - npm install 不是首先检查全局版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39864895/

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