先列举报错内容,这些错误情况,均适用,出现以下错误,大概率解决一个又出现另一个,无穷无尽
错误信息1:stack Error: Can't find Python executable "python", you can set the PYTHON env variable.(sass版本过低导致)
错误信息2:gyp ERR! cwd C:\Users\yovngfun\code\2CIM-Web\node_modules\node-sass(sass版本过低导致)
错误信息3:the package-lock.json file was created with an old version of npm(node版本过高导致)
错误信息4:Unsupported engine(node版本过高导致)
错误信息5:Syntax Error: Error: ‘**\node_modules\pngquant-bin\vendor\pngquant.exe‘(npm网络导致)
错误信息6:Error: Node Sass does not yet support your current environment
错误信息7:this.getOptions is not a function
错误信息8:Syntax Error: Error: Cannot find module ‘imagemin-gifsicle‘
错误信息9:Syntax Error: Error: Cannot find module ‘gifsicle‘
错误信息10:throw err; ^ Error: Cannot find module ‘node:util‘(npm和cnpm版本不一致)
先说原因,最后总结终极解决方案
1,拿到后直接npm i
由于项目较早,大概率会出现node版本过高问题,罪魁祸首是sass,sass每个版本有对应的node版本,过高,过低都不行。
这时候就需要使用nvm,nvm安装并切换对应的node版本。nvm安装node时会同步安装npm,需要注意一定要确保node和npm都安装成功。
由于项目比较老,安装依赖需要良好的网络环境,不然会遇到各种包缺失的情况,最好使用cnpm安装,因为cnpm较早就开始有镜像支持,对古早项目比较友好。pnpm是最近的镜像源,不支持旧版本node。
但是cnpm和npm需要版本对照,要安装npm对应版本的cnpm
至此以拿到手时,项目里的"node-sass": "^4.12.0"为例
解决办法:
找到sass对应的node版本号, 执行并切换对应的版本号,这里用nvm管理node。安装node时,一定要观察npm同步安装成功,每个node对应一个npm。
具体命令如下:
//安装node
nvm install 14.15.0
//查看所有node
nvm ls
//切换node版本
nvm use 14.15.0
//检查npm版本,输出6.13.4
npm -v
//安装cnpm, 版本需与npm版本一致
npm install -g cnpm@6.0.0 --registry=https://registry.npm.taobao.org
//最后执行安装依赖
cnpm i
//运行项目
npm run serve
追更:
当直接用cnpm安装依赖时,会发现node_modules里很多依赖是采用外链,且包数量增加了很多这里可以采用其他方式
1,使用nrm,指定源之后再使用npm安装即可
npm install -g nrm
nrm add registry http://192.168.10.127:8081/repository/npm-public/
npm install
2,使用yarn
npm i -g yarn
yarn install