为什么当我们切换版本时,nvm 不会换入/换出用户漫游/npm 文件夹?

问题描述 投票:0回答:1

简介

所以,我使用 Nvm 在节点 8 和节点 14 之间切换,这让我很痛苦。

每当我在版本之间切换时,我的一些全局工具/模块都会出现不兼容和问题。例如。当我在节点 8 中处理遗留项目时,一切都很好。

如果我切换到节点 14,并从那里安装一些工具...然后切换回来... 我收到各种错误,例如

λ rimraf
C:\Users\bak\AppData\Roaming\npm\node_modules\rimraf\dist\esm\bin.mjs:2
import { readFile } from 'fs/promises';
^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:617:28)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Function.Module.runMain (module.js:694:10)
    at startup (bootstrap_node.js:204:16)
    at bootstrap_node.js:625:3

我需要卸载并重新安装 rimraf 才能使其再次工作(使用旧版本):

npm uninstall -g rimraf
npm install -g [email protected]

然后..当切换回14时..再次相同。

问题

所以问题:

  1. 为什么 nvm 不自动执行此操作?
  2. 切换版本时出现这个问题正常吗?我觉得很奇怪,他们会让 nvm 切换节点版本......而不考虑换入/换出节点模块。

其他注意事项:

我正在考虑编写一个脚本来移动我的“AppData\Roaming” 下午 当我切换版本时 ode_modules' 文件夹。基本上,换入,换出。

这个效果好吗?

node.js node-modules nvm
1个回答
0
投票

从评论中,我开始怀疑我最初的nodejs安装可能留下了残留设置。

λ npm config list
; builtin config undefined
prefix = "C:\\Users\\bak\\AppData\\Roaming\\npm"

事实上,运行配置列表显示前缀被设置为Appdata漫游文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.