今天接到一个新任务,修改一个 wepy 框架开发的微信小程序。
在代码的 REDEAD.md 文件里:
npm install wepy-cli -g
wepy -v
1.7.3
wepy init standard myproj # 使用 standard 模板初始化项目
npm install # 安装项目依赖包
$ npm run dev # 监听并且编译项目
按照要求用命令:npm install wepy-cli -g
安装框架,结果安装完成后,wepy -v
后的版本是 2.1.0。
继续: npm install
安装依赖包的时候报错,忘记截图了,反正大概意思是:用2.x版本运行1.x版本
没办法,只能卸载 wepy-cli,重新装指定版本
先用的命令卸载,但是没起作用,只好去 AppData 的 npm 里直接删掉,然后重新安装1.7.3版本:
//查看版本
npm ls -g --depth=0
//卸载 wepy-cli
npm uninstall -g wepy-cli
//安装特定版本 @1.7.3
npm install -g wepy-cli@1.7.3
然后运行:npm run dev
提示如图:
按照操作提示,输入:npm install wepy --save
然后就提示个:
再次运行:npm run dev
命令,还是报上面一样的问题。头大了。。。
百度找了半天,发现了一个类似的问题:
在某个项目内npm install时,老是报以下错误:
npm ERR! code EINTEGRITY npm ERR! sha1-7Qoe24fAXU2xA3xfj0g9ijtfCCU= integrity checksum failed when using sha1: wanted sha1-7Qoe24fAXU2xA3xfj0g9ijtfCCU= but got sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== sha1-psC74fOPOqC5Ijjstv9Cw0TUE10=. (1511 bytes)
npm ERR! A complete log of this run can be found in: npm ERR! /Users/acer/.npm/_logs/2019-03-09T14_42_43_549Z-debug.log 安装 create-nuxt-app@latest 失败,错误代码:1
解决办法:
给 npm set config registry 更改了源。改回官方的 npm 源就能解决问题:
运行命令:
npm config set registry https://registry.npmjs.org
// 或者
npm config set registry https://registry.npm.taobao.org
提示如图:
继续百度,发现了一个类似问题:
运行 npm install 安装项目依赖时报错,异常信息如下:
npm ERR! code EINTEGRITY npm ERR! sha1-xxxxxx integrity checksum failed when using sha1: wanted sha1-xxxxxx but got sha512-xxxxxx sha1-yyyyyyy. (10379 bytes)
解决办法:
方式一:直接删除 package-lock.json 文件,重新执行 npm install
即可。
博主在尝试了各种方式无果后,才使用了这种方式,亲测可行。
package-lock.json官方文档
马后炮一下:其实不难发现异常信息中表达的信息就是文件的校验值匹配不上。提到匹配,那一定是涉及到两个东西之间的对比。在这个场景下,一方就是下载下来的文件的sha1值,另一方就是本地记录的sha1值。那本地记录的sha1值是记录在哪里呢?通过全局搜索不难定位到 package-lock.json。简单粗暴操作就是直接删掉 package-lock.json 即可避免sha1校验错误的问题。至于为什么这一次下载的文件的sha1值和上一次下载时记录的sha1值不一致,这还有待考究。
(以下方式来源网络,对我无效,这里也记录下来,后来者可尝试)
方式二:升级 ,重新执行 npm install
升级npm npm install -g npm
安装项目依赖 npm install
方式三:清缓存,重新执行 npm install
删除项目下的 node_modules
删除用户缓存 C:\Users{USER_NAME}\AppData\Roaming\ 下的 npm和npm-cache
删除全局缓存 {NODE_HOME}/node_cache
验证缓存 npm cache verify
安装项目依赖 npm install
我用的方式一,然后又提示:
再次百度大神,找到解决方案:直接在当前目录下进行node-sass 的数据源没设置
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
再次执行:
npm i
提示如图:
说是发现了21个漏洞,按照提示运行:npm audit fix
再次npm install
19个漏洞需要手动检查,无法更新。。
不管他了,重新运行:npm run dev
,或者开启实时编译:wepy build --watch
OK,终于跑起来了,不容易。。。
记录一下踩坑过程,以便有小伙伴遇到类似问题。