Jenkins前端自动化部署
Jenkins
是一个开源软件项目,是基于Java
开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
懒,是第一生产力,如果在页面上点点按钮,然后就可以把以前打包上传服务器的事都解决了,这样不是有更多精力干别的事了?
公司其实早些时候,我看也有这些工具,但是项目一直没有上,趁着这次要提升效率,所以怂恿着产品,就开始上手Jenkins
。这篇文章,只是以流水的形势,记录一下我中间踩过的坑,避免以后有人再踩坑!
首先,第一个坑,构建环境node
!
上网查了,要装node
,所以去公司的Jenkins
后台一看,一脸懵逼,和别人的截图不一样……
原来,公司的这个是有权限控制的,如果想装一些插件,需要走工作量申请。然后,问了下公司的IT,原来我们项目是以挂载机去跑的job,所以,需要在自己的挂载机上面装node!
安装node
,这里建议安装较新的版本
wget https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz
解压文件重命名
xz -d node-v12.16.3-linux-x64.tar.xz
tar -xvf node-v12.16.3-linux-x64.tar
mv node-v12.16.3-linux-x64 nodejs
设置快捷方式
ln -s /root/nodejs/bin/node /usr/local/bin/node
ln -s /root/nodejs/bin/npm /usr/local/bin/npm
测试
node -v
npm -v
至此,挂载机的node
环境已经配置完毕。
第二坑,node-sass
安装报错
这个坑,是有点深,安装的时候,一直提示EACCES:permission denied
,网上搜了好多方法,无解,但是感觉是没权限。记得npm
提供的有解决方案:Resolving EACCES permissions errors when installing packages globally
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
source ~/.profile
第二坑,也爬了出来!
第三坑,node-sass
安装超时
如果用到了sass
总是会自动去下载平台相关的安装包,首先要知道的是,安装 node-sass
时在 node scripts/install
阶段会从 github.com
上下载一个 .node
文件,大部分安装不成功的原因都源自这里,因为 GitHub Releases
里的文件都托管在 s3.amazonaws.com
上面,而这个网址在国内总是网络不稳定!!!
所以,只能改源:
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
例如我的Command
cd /usr/G3_Vue #进入项目目录
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
npm install
npm run build
cd dist
rm -rf dist.tar.gz #删除上次打包生成的压缩文件
tar -zcvf dist.tar.gz * #把生成的项目打包成dist方便传输到远程服务器
cd ../
第四坑,把打包好的文件通过SSH部署到服务器:Send build artifacts over SSH
这里卡了一下午,是卡在了Remote directory
,这里的路径我虽然写的是根目录,但是,实际上还真不一定是根目录,得看服务器当时是怎么配置的了,我这边IT配置的是root
这个文件夹,所以,导致我一直以为我代码写的有问题,该下班的时候才发现,我代码是没问题的,只不过文件上传到别的目录下了。
好了,以上的4个坑,都已经说完了,花费了我一天的时间,希望我上面的流水账,能让别人少走弯路!