Linux下Jenkins前端打包

##前提
1.1、已安装Jenkins
1.2、git相关配置已完成
##安装nodejs
2.1、下载
地址:https://nodejs.org/dist/v14.17.3/node-v14.17.3-linux-x64.tar.gz(可以直接访问连接中的上层目录选择自己需要的版本)
直接下载包:wget https://nodejs.org/dist/v14.17.3/node-v14.17.3-linux-x64.tar.gz
2.2、解压
tar -zxvf node-v14.17.3-linux-x64.tar.gz -C /usr/local/
2.3、改名
mv node-v14.17.3-linux-x64 node
2.4、使node可被使用
有两种方法,我选第二种:
a、首先配置环境变量vi /etc/profile,添加以下配置信息:
/#nodejs
export NODEJS_HOME=/nodejs
export PATH= N O D E J S H O M E / b i n : NODEJS_HOME/bin: NODEJSHOME/bin:PATH
export NODE_PATH=$NODEJS_HOME/lib/node_modules
然后使配置生效:source /etc/profile
b、建立建立软链接
ln -s /usr/local/nodejs/bin/node /usr/local/bin/node
ln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm
2.5、确认可用
随便找个目录,node -v 、npm -v。
能够正常输出版本号即可用。
2.6、测试打包
a、到一个pull下来的前端项目的workspace下:cd /var/lib/jenkins/workspace/融合云-前端
b、执行npm install,无报错即成功
c、执行npm run build,使用ll命令查看当前目录下是否有dist文件夹,有则成功。
2.7、Jenkins的project配置如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我这里由于是项目部署在Jenkins本地服务器上,所以不需要把包上传到指定服务器,只要放到目标文件夹下就行了,然后我打包用的pnpm,正常来说npm够用了。也不用每一次都安装依赖包,除非开发人员引入新的依赖了。

##出现问题
在这里插入图片描述

1、npm install 时失败,原因是版本太高了 GYP 在最新版本的 Node (16) 上存在问题。
解决方案:使用版本低一些的node

在这里插入图片描述

2、npm install 失败 gyp ERR! stack Error: EACCES: permission denied, mkdirxxx
原因:npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。进行一些需要权限的操作时,就直接崩掉了。
解决方案:
a、专门建一个用于运行 npm 的高权限用户;
b、命令后加 --unsafe-perm 参数
在这里插入图片描述

3、npm run build 失败 报错是could not resolve 无法解析 原因:前端人员文件名大小写编写有误
解决方案:修改相关文件名
4、Jenkins打包是面向多个项目的,有些项目使用pnpm,但是pnpm要求的node版本较高(这里用的16.20)否则就不兼容;而一些项目又需要低版本。
解决方案:
1、使用版本低的pnpm,使其兼容node14
2、笨方法:安装两个版本node,一个14,一个16,加载依赖or编译前需要手动改下软连接,删除旧的新增一个(例如:ln -s /usr/local/nodejs/bin/node /usr/local/bin/node )。我这里都安装在/usr/local目录下面,14是node,16是nodejs。
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值