0

Jenkins | 构建Angular项目报found version 4, expected 3的错误,点解?

09:55:21 ERROR in Metadata version mismatch for module
/var/jenkins_home/workspace/TEST.SkylotFront/node_modules/ngx-weui/utils/types.d.ts,
found version 4, expected 3
09:55:21 ERROR in ./src/main.ts
09:55:21 Module not found: Error: Can't resolve
'./$$_gendir/app/app.module.ngfactory' in
'/var/jenkins_home/workspace/TEST.SkylotFront/src' 09:55:21 @
./src/main.ts 3:0-74
09:55:21 @ multi ./src/main.ts

我自己在项目中用的版本是"ngx-weui": "^1.0.15" (在package.json中)
用过这个组件的都知道,1.0.15已经很落后很老了,两年前的版本,现在最新的是7.0

我自己在项目中用的版本是"ngx-weui": "^1.0.15" (在package.json中)

用过这个组件的都知道,1.0.15已经很落后很老了,两年前的版本,现在最新的是7.0。
所以,网上说要降版本的解决办法,我也用过,依旧不适用;但是,我就想,有没有可能是版本落后呢?于是我就分别升到了3.0.0和5.0.4来试(这个没有4.0.0版本),依旧不行。

然后,我看了一个奇怪的解决办法,说是在app.router.ts随便敲入几个空格就行了,我也试了,不行。

最后,我把node_modules全删了,重新install回来,也还是不行。

我自己在本地编译都可以啊,怎么在jenkins里面编译就报这种鬼错误?这么娇气的吗???

希望有大佬能给出不一样的解决办法,先谢谢啦!

2019-05-30 提问
1 个回答
0

已采纳

经过几天的摸索,终于找到了一个方法:
在Jenkins的配置如下

npm cache verify;
npm config set registry https://registry.npm.taobao.org;
npm config get registry;
npm install ngx-weui@1.0.10 --save;
npm install;
npm run build --prod --env=${env} -base-href ./;

第1句是清除npm的缓存:当清node_modules 出现某一些包错误时候,查不到原因时候,可以适当的清除缓存试试。删掉重新安装。 可以是npm cache clean;

第2句是设置为淘宝镜像:因为我发现node_modules的文件,无论我怎么升降版本,都会与我的本地可编译文件不一样,所以一查,不是淘宝镜像。为了统一,于是设置为淘宝镜像。

第3句是查询一下当前的镜像是什么的,这个可以不用。

第4句是用命令的方式去更新出问题的插件版本,因为仅有第1、第2句和第5句的时候,好像也没有更新node_modules,删掉重新下载也没用。于是就想着在编译的时候多出一步去处理这个版本的问题。

第5句更新node_modeles。

第6句编译。

PS:因为在这里配置了更新插件版本,所以,编译的速度会下降了一些。

撰写答案

推广链接