当我从 NPM 切换到 Yarn 时,我在卸载 NPM 之前没有删除 NPM 安装的包。因此,当通过 Yarn 添加全局包时,符号链接仍然与 NPM 安装相关联。这导致我在通过 Yarn 全局升级/添加软件包时遇到问题,因为它没有指向 Yarn 管理的新版本。
(我通过 Homebrew 安装了 Node 和 NPM,这就是我最终重新安装 NPM 的方式:)
brew uninstall --force yarn
brew uninstall --force node
brew install node
然后我删除了所有 NPM 的全局模块,因为我现在想专门使用 Yarn。 (在执行此操作之前,请确保您确实希望删除所有这些!您可能需要运行 npm list -g --depth=0 以查看 NPM 为您管理的内容,以便您可以使用 Yarn 重新安装)(这并不在 Windows 上工作,对于 Windows 版本,请参阅 Ollie Bennett's Answer
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
这是它的工作原理:Taken from Kai Sternad's Answer
-
npm ls -gp --depth=0 列出所有全局顶级模块(参见 ls 的 cli 文档)
-
awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' 打印所有实际上不是 npm 本身的模块(不以 /npm 结尾)
-
xargs npm -g rm 全局删除所有通过前一个管道的模块
然后,重新安装纱线。 brew install yarn
确保您的路径中有$HOME/.config/yarn/global/node_modules/.bin。 (见Yarn Path Setup
在 Mac 或 Linux 上:
export PATH="$PATH:`yarn global bin`:$HOME/.config/yarn/global/node_modules/.bin"
然后安装 yo 和 generator-jhipster(我已经通过 Yarn 删除了这些)(参见 Installing JHipster)
yarn global add yo
yarn global add generator-jhipster
添加终于全局更新到最新版本了!