开发经常会遇到这样的问题,同样的代码 别人可以运行 自己从git上拉取下来运行却会报错
遇到很多的都是npm依赖版本变动的问题
解决:版本锁定
package.json
中固定版本npm
+package-lock.json
npm
+npm-shrinkwrap.json
yarn
+yarn-lock.json
可以用yarn.lock文件锁住版本,这样每次新安装 都是从yarn.lock锁定的版本号中进行安装 如果未锁定,安装会默认安装最新版本 可能会与原有的版本冲突
yarn安装 用yarn.lock
npm安装 package-lock.json(或npm-shrinkwrap.json npm5.0之前的方法)
npm包符号小解:
符号^
:表示主版本固定的情况下,可更新最新版。例如:vuex: "^3.1.3",3.1.3及其以上的3.x.x都是满足的。
符号~
:表示次版本固定的情况下,可更新最新版。如:vuex: "~3.1.3",3.1.3及其以上的3.1.x都是满足的。
无符号:无符号表示固定版本号,例如:vuex: "3.1.3",此时一定是安装3.1.3版本。
举例:
"^1.2.3": 大于等于 1.2.3 且小于 2.0.0版本
"^0.3.4": 大于等于 0.3.4 且小于 0.4.0版本
"^0.0.6": 大于等于 0.0.6 且小于 0.0.7版本
如果拉取的老代码有一天无法运行 可以尝试删除node_modules重新安装,但切记不要去除lock文件
偶尔也有node版本的问题 可以比对node版本 看是不是版本太低或太高的问题 然后安装