先说下先背景,在win 上 执行sh 脚本,来实现node的简单部署,
#!bin/bash
# bash build.sh x.x.x.x prod
param_verison=$(date +%F)
param_ip=${1}
param_env=${2}
param_ctiy=${3}
project_dir_path=$(
cd $(dirname $0)
pwd
)
package_name="tbk-admin"
project_name="tbk-admin"
project_path=$(dirname "$PWD")
echo ""
echo "版本号:${target_time}"
echo "项目名:${project_name}"
echo ""
# if [[ $param_verison = '' ]]; then
# echo "请输入版本号"
# exit 8
# fi
if [[ $param_ip = '' ]]; then
echo "请输入ip"
exit 8
fi
if [[ $param_env = '' ]]; then
echo "请输入环境"
exit 8
fi
if [[ $param_ctiy != '' ]]; then
package_name=$project_name-$param_ctiy
fi
echo $project_name
echo $project_path
cd ../c
npm run build
echo "=================================编译结束============================================"
cd ../s
tar -zcvf ../../dist/${package_name}-${param_verison}.tgz --exclude=.git --exclude=logs --exclude=node_modules --exclude=target .
echo "=================================打包结束============================================"
if [[ $param_env == 'prod' ]]; then # 正式环境
scp D:/Work/Tbk/dist/${package_name}-${param_verison}.tgz admin@xxx.x.x:~/admin
ssh admin@${param_ip} "cd admin; tar -zxvf ${package_name}-${param_verison}.tgz;npm run start"
echo "=================================上传结束============================================"
fi
就会报
bash: npm: command not found
如果node是配置 /etc/profile, 就会找不到npm命令
需要创建一个软链接
ln -s /opt/nodejs/bin/npm /usr/local/bin/
ln -s /opt/nodejs/bin/node /usr/local/bin/
这样就可以了,仅供参考