Vue打包出错处理

背景

开发反馈一个Vue项目打包失败,让我处理下。
Vue项目的打包项目是这样,从gitlab拉代码,然后npm install安装依赖,npm run build-pro打包,通过rsync将打包出来的html文件同步到Nginx的html目录下,并自动在Nginx下增加Vue的路由配置

基于以下环境:

[root@iZ88636htauZ bin]# ./node -v
v10.20.1
[root@iZ88636htauZ bin]# ./npm -v
6.14.4
[root@iZ88636htauZ bin]# ./vue -V
@vue/cli 4.4.6

报错如下:

11:36:19 npm ERR! code ETARGET
11:36:19 npm ERR! notarget No matching version found for vant@2.9.1.
11:36:19 npm ERR! notarget In most cases you or one of your dependencies are requesting
11:36:19 npm ERR! notarget a package version that doesn't exist.
11:36:19 npm ERR! notarget 
11:36:19 npm ERR! notarget It was specified as a dependency of 'social-security'
11:36:19 npm ERR! notarget 
11:36:33 
11:36:33 npm ERR! A complete log of this run can be found in:
11:36:33 npm ERR!     /root/.npm/_logs/2020-07-13T03_36_19_295Z-debug.log
11:36:33 Build step 'Execute shell' marked build as failure
11:36:33 Finished: FAILURE

查了一下报错,网上都是说要强制清缓存:

删除 node_modules、package-lock.json,执行 npm cache clean --force ,重新安装依赖,还是一样的报错。

rm -rf node_modules
rm -f package-lock.json
npm cache clean --force
npm install

重新去看报错第二句 npm ERR! notarget No matching version found for vant@2.9.1.,去查看 package.json ,发现里面写的是 vant@2.8.7,手动安装 2.8.7版本后再次安装依赖,打包成功了。

npm install vant@2.8.7
npm install

总不能每次都手动安装吧,再次查看 package.json,发现有的写 ^,有的写 ~ 符号,这俩有啥区别?

    "vant": "^2.8.7",
	"vue": "~2.6.11",

网上查了一下,

  • ^ 是最近的一个大版本,"vant": "^2.8.7",会自动匹配 2.x.x,但不包括3.x.x
  • ~ 是最近的小版本, "vue": "~2.6.11",会匹配2.6.x,不匹配2.7.11

于是把 vant": "^2.8.7" 改为 vant": "~2.8.7" ,测试打包成功。

posted @ 2020-07-13 13:18  海口-熟练工  阅读(2603)  评论(0编辑  收藏  举报