【问题标题】:What happens when you try to uninstall a package that doesn't exist in your project?当您尝试卸载项目中不存在的包时会发生什么?
【发布时间】:2020-11-05 22:47:45
【问题描述】:

我没有输入npm run lint,而是不小心写了npm un lint。我知道ununinstall 的同义词,但我们的package.json 中没有包lint

命令行显示它添加了 5 个包并删除了 13 个。package.json 并没有改变,据我所知package-lock.json 也没有。

运行'npm list | grep lint' 只显示 eslint 和 lint-staged,我相信这两个都还在安装。

运行 npm i 不会安装任何新内容。

我如何知道发生了什么,以及添加/删除了哪些包?

【问题讨论】:

  • 它是 docs.npmjs.com/cli/uninstall 的别名 - 如果您区分 package-lock.json,您应该能够看到发生了什么变化。
  • @jonrsharpe 我知道这一点,但我没有安装该软件包。 package-lock.json 文件在我们的 git repo 中,它在 vscode 中没有显示为更改。不过我可以进一步挖掘。
  • lint 是否是其他包的依赖项 - 它列出了 31 个依赖项?或者您确定它“在您的项目中不存在”?也许将您的 package.json 添加到您的问题中可能会增加您获得答案的机会。
  • @RobC 我不在 package.json 的同一个网络上,但从依赖列表中我看不到任何东西。
  • 那个 dependents list 并没有断定它不在您的完整依赖关系树中。

标签: node.js npm npm-install npm-package


【解决方案1】:

有 2 个作用域,分别是 globallocal。通常npm的执行会先转到本地再转到全局。

在您的情况下,npm un 没有遵循任何本地范围选项,例如 --save,因此您可能在全局范围内操作。

这就是为什么您看不到 package-lock.json 的任何更改

【讨论】:

  • npm un 需要[--global|-g] 选项才能从全局范围的上下文中卸载包。那么是什么让您认为他们“可能在全球范围内运作。”
猜你喜欢
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
  • 2018-02-07
  • 2014-12-24
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
相关资源
最近更新 更多