一、用户依赖的包版本与各个子项目依赖的包版本相互不兼容,导致安装过程的中断
解决:安装命令后添加--legacy-peer-deps命令
释义:npm install xxxx --legacy-peer-deps命令与其说是告诉npm要去干什么,不如说是告诉npm不要去干什么。使用该命令用于绕过peerDependency里依赖的自动安装;它告诉npm忽略项目中引入的各个依赖模块之间依赖相同但版本不同的问题,以npm v3-v6的方式去继续执行安装操作,所以其实该命令并没有真的解决冲突,而是忽略了冲突,以“过时”(v3-v6)的方式进行下载操作。
二、升级nodejs版本后启动项目报digital envelope routines::unsupported
解决:修改package.json,在相关构建命令之前加入set NODE_OPTIONS=--openssl-legacy-provider
释义:因为 node.js 高版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错。
示例:
"scripts": {
"serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
}
三、 elementUI的el-date-picker报[Vue warn]: Avoid mutating a prop ...Prop being mutated: “placement“的问题
解决1:最简单的解决方式(推荐)添加placement="bottom-start"
<el-date-picker v-model="dateData" placement="bottom-start" ></el-date-picker>
解决2:升级新的elementUI版本到2.15.8
先卸载之前的版本,再安装新的版本
npm uninstall element-ui
npm install element-ui@2.15.8 -s