最近又clone了个项目,一run build各种报错,我又得来填坑了
- npm install 报错,我的这个报错主要是npm ERR! code ELIFECYCLE报错,首先判断可能是组件之间版本搭配的问题,解决方法见这篇博文:npm ERR! code ELIFECYCLE报错解决
- 然后我继续我的run build ,报错Module build failed (from ./node_modules/image-webpack-loader/index.js) 截图如下:
上面是一个image-webpack-loader的报错,下面是一个ELIFECYCLE报错,根据我填坑的一点点经验来说,ELIFECYCLE报错很有可能是因为组件之间版本搭配问题,所以,我卸载image-webpack-loader再重装,命令:
卸载的版本是4.6.0,默认安装的版本是6.0.0sudo npm uninstall image-webpack-loader --save-dev -unsafe-perm sudo npm install image-webpack-loader --save-dev -unsafe-perm
再次run build,仍然报错,但报错信息有了变化 - 报错:ArgumentError: Expected
options.quality
to be of typearray
but received typestring
这个看起来是代码报错,找了很多解决方法无果,最终我是这样乌龙的解决问题的:
首先我运行了以下命令删掉了node_module文件,然后清除了缓存,最后重新编译npm
重新编译npm的时候傻眼了,发现删错了package.json文件,应该删除package-lock.json文件,用sudo rm -rf package.json # 这里错了,应该是package-lock.json sudo rm -rf node_module sudo npm cache clean --force sudo npm i --unsafe-per node-sass
生成了package.json文件后发现就算重新编译npm也没有把所有的插件引用都写入该文件,懒得找方法去解决这个问题,我直接删了这个项目重新clone回来,发现不管是重新编译还是打包都不会报错了,发版也畅通无阻了,不好意思,我就这样乌龙的解决了问题。npm init -y
大家遇到问题可以先尝试这个最简单粗暴的方法:sudo rm -rf package-lock.json sudo rm -rf node_module sudo npm cache clean --force #强制清除缓存 sudo npm i --unsafe-per node-sass