Nodejs环境打包前端项目

Node.js 在Linux下安装和环境搭建/编译项目

安装nodejs:
1.下载nodejs源码包

wget https://nodejs.org/dist/v14.16.0/node-v14.16.0-linux-x64.tar.xz
#wget https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/v10.5.0/node-v10.5.0-linux-x64.tar.xz

2.解压

xz -d node-v14.16.0-liunx-x64.tar.xz / tar -xzvf node-v14.16.0-liunx-x64.tar.gz
tar -xvf node-v6.10.3-liunx-x64.tar

3.创建软连接

mv node-v14.16.0-liunx-x64 /usr/local/nodejs
ln -s /usr/local/nodejs/bin/node /usr/local/bin/node
ln -s /usr/local/nodejs/bin/npm  /usr/local/bin/npm

4.查看nodejs环境是否安装成功

node -v
npm -v

5.安装cnpm 使用淘宝源

npm install -g cnpm  --registry=https://registry.npm.taobao.org
rm -rf /usr/local/bin/cnpm
ln -s /usr/local/nodejs/lib/node_modules/cnpm/bin/cnpm    /usr/local/bin/cnpm
cnpm -v

 

编译项目:

需要先下载前端项目源代码/ 然后进入项目代码目录

# 例如:
git clone http://192.168.16.20/tiptop-statement/web-client.git

cd web-clent

安装项目所需依赖

cnpm install

项目打包

# fef test
cnpm run build

如果打包过程中,fef命令无法使用,做如下操作:

注: 这里打包项目 需要fef命令,因为手动安装容易失败,所以上传我编译好的nodejs目录文件包。

 

 解压到/root/家目录下 并且设置软连接:

find / -name feflow
ln -s /root/.npm-global/lib/node_modules/@feflow/cli/bin/feflow /usr/local/bin/fef

# 生效变量
source
/root/.bashrc

项目打包完成后,会额外生成一个文件夹 dist 。 主要将文件夹中的内容拷贝到nginx或者httpd的发布目录下即可。

例如是nginx

# 先备份原来的项目代码
tar czf web.tar.gz /usr/local/nginx/html/*  /data/backup/

# 拷贝打包好的项目代码到nginx发布目录
cp -r dist/* /usr/local/nginx/html/

 

 

Jenkins配合shell脚本案例

case $Status in
  Deploy)
    {
    echo "Status:$Status"
    echo "version:$BUILD_NUMBER"
    NPM_PATH="/usr/local/bin/cnpm"
    FEF_PATH="/usr/local/fef_test/bin/fef"
    BACKUP_PATH="/backup/batar-entrance-guard/entrance-guard-web"
    PROJECT_FILE="/project/batar-entrance-guard/entrance-guard-web/dist"
    cd $WORKSPACE
    source /home/batar-exam/.bashrc
    sudo $NPM_PATH install
    /usr/local/fef_test/bin/fef test
    if [[ -d ${PROJECT_FILE} ]];then
        rm -rf  $PROJECT_FILE  
    fi
    cp -rf $WORKSPACE/dist $PROJECT_FILE
    #备份项目文件
    cp -rf $WORKSPACE/dist $BACKUP_PATH/$BUILD_NUMBER-dist
    }
    ;;
  Rollback)
    {
    echo "Status:$Status"
    echo "version:$Version"
    BACKUP_PATH="/backup/batar-entrance-guard/entrance-guard-web"
    PROJECT_FILE="/project/batar-entrance-guard/entrance-guard-web/dist"
    if [[ -d ${PROJECT_FILE} ]];then
        rm -rf  $PROJECT_FILE  
    fi
    cp -rf $BACKUP_PATH/$Version-dist $PROJECT_FILE
    }
    ;;
  *)
  exit
      ;;
esac

 

posted on 2021-03-11 17:35  蜂蜜log  阅读(1666)  评论(0编辑  收藏  举报

导航