1. 复现错误
今天下载好ant-vue
的项目,使用npm run serve
启动时,却报出如下错误:
即error:0308010C:digital envelope routines::unsupported
2. 分析错误
最近文心一言的账号审核通过,可以借助它来帮我分析错误:
文心一言指出,这是指针偏移解析度的错误。
我只是下载完代码,使用npm run serve
启动,怎么就指针偏移了呢?
于是,通过查询其他资料,在package.json
里添加环境变量export NODE_OPTIONS=--openssl-legacy-provider;
,如下代码所示:
"scripts": {
"serve": "export NODE_OPTIONS=--openssl-legacy-provider;vue-cli-service serve",
"build": "export NODE_OPTIONS=--openssl-legacy-provider;vue-cli-service build",
"lint": "vue-cli-service lint"
},
使用npm run serve
启动时,却报出如下错误:
'export' 不是内部或外部命令,也不是可运行的程序或批处理文件。
这种方法仍然无法解决我的问题,但从某篇博文的评论中解决了我的问题。
3. 解决错误
直接把全部scrips:{}
替换成如下值:
...
"scripts": {
"dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"lint": "eslint --ext .js,.vue src",
"build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"new": "plop",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit"
},
...
重新使用npm run serve
启动项目,方可成功启动,如下图所示: