如果你是搜索linux-x64-83_binding.node,过来的,那么估计你是遇到和我一样的坑了。
关于如何jenkins+码云 实现自动化部署项目到centos上,可以参看这篇文章,写得比较详细,我这里略过了:
https://blog.csdn.net/qq_38946537/article/details/107871976
1. 安装nodejs插件
2. 在centos中安装nodejs
yum install nodejs
node -v 查看到版本是v14.16.0
2. 全局设置nodejs ManageJenkins->Global Tool configuration
3. 勾选 Provide Node & npm bin/ folder to PATH
设置npm 镜像
npm config set registry https://registry.npm.taobao.org
npm config get registry
build的时候出现这种错误:
Cannot download "https://github.com/sass/node-sass/releases/download/v4.13.1/linux-x64-83_binding.node":
fuck, 找了一大堆,可能是jenkins把路径拼错了,jenkins拼出来的地址说是在v4.13.1
淘宝镜像只在https://npm.taobao.org/mirrors/node-sass/v4.14.0/ 下面有linux-x64-83_binding.node,github就更没有了, 所以下载不了。
最后搞个变通的方法,找到.npmrc,在root/.npmrc
编辑sass_binary_site=https://npm.taobao.org/mirrors/node-sass/v4.14.0/linux-x64-83_binding.node?,
这里的问号很关键,jenkins会把要下载的sass拼接到这个url地址后面,这样v4.13.1会变成一个参数被屏蔽啦,拼接后变成
https://npm.taobao.org/mirrors/node-sass/v4.14.0/linux-x64-83_binding.node?/v4.13.1/linux-x64-83_binding.node
重新build,下载成功。
如果,之前jenkins通过npm下载的linux-x64-83_binding.node不对,需要删除的话。
find / -name linux-x64-83_binding.node
, 找出jenkins缓存的地方,然后分别删掉,这样jenkins又会从网络重新下载而不是读缓存了。
最后是build 前端项目的脚本如下:(注意预先创建好文件夹/home/wwwroot)
cd ${WORKSPACE}
npm install
npm run build --prod
cd dist
cp -rf ./* /home/wwwroot