当发现Node.js模块版本不匹配时,首先要做的是什么?
我使用nw.js和neon-cli,因为版本不匹配而感到疲惫,所以做了些笔记。
由于我是nodejs的初学者,可能我的包管理工具使用方法有问题。如果你有任何建议或者觉得我应该做些什么,请务必告诉我。
地狱般的错误信息:“编译与不同版本的Node.js不符”
由于我在包管理方面使用yarn,所以遇到了问题。在使用yarn进行包管理时,可能会遇到一些npm包相关的命令无效的情况。如果混淆了这些命令,就会陷入问题中。
这个错误似乎在说该模块只能在不同的nodejs版本下运行。
执行环境
操作系统→OSX 10.14 (Mojave)
Node版本管理→ Nodebrew
Node全局包管理→ Npm
Node本地包管理→ Yarn
nodejs→v11.0.0(虽然版本有所更改,但我一直在v10.9和v11.0之间切换)
让我们一点一点地仔细检查一下
确认当前的Node.js版本。
从终端运行以下命令:
node -v
确认所需的nodejs版本是否支持所有必要的模块。
我用手工逐一确认了所有内容,但是否有一种更快速的方法可以粗略浏览呢?
如果需要的话,可以更改Node.js的版本。
确认已安装的版本
nodebrew ls
如果这里没有你想要的版本,可以安装nodebrew v0.0.0。请提供你想要的版本号进行安装。
应用版本
使用 nodebrew v0.0.0 ← 输入应用版本
重新构建全局安装的 npm。
我不知道这个是否真的有意义。
npm rebuild -g
重新构建NPM或Yarn的本地安装
只需把node_modules等文件保留原样
对于npm的情况,在中文中可以进行如下的转述:
如果使用npm,可以这样说:
npm重建
如果是羊毛的话
yarn 强制安装
删除项目的node_modules目录,并重新安装模块。
如果用第四种方法不起作用时,我会尝试这个解决方案:删除 node_modules 文件夹。
再次安装
确认 package.json 文件中每个模块的版本。
然后重新安装包
npm install
結束
目前为止,我们做了这么多的应对,终于搞定了。
如果即使这样还无法实现,可能是因为所需的模块的Node版本都不同。那个时候就放弃吧!