travis-ci 部署 node 项目用 pm2 进程守护提示没有 pm2 命令

命令行工具中可以直接使用 pm2 命令。

travis-ci 错误提示

clipboard.png

命令行正常使用

clipboard.png

我很疑惑,因为我的 pm2 已经全局安装了=。=

阅读 2.8k
2 个回答

部署文件写错了。正确的应该这样

language: node_js
node_js:
- 8.9.1
branchs:
  only:
  - master
cache:
  apt: true
  directories:
  - node_modules
before_install:
  - openssl aes-256-cbc -K $encrypted_9b2d7e19d83c_key -iv $encrypted_9b2d7e19d83c_iv
    -in id_rsa.enc -out ~/.ssh/id_rsa -d
  - chmod 600 ~/.ssh/id_rsa
  - echo -e "Host 39.104.15.110\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
install:
# - git pull
# - rm -f package-lock.json && npm install
script:
# - echo $PATH
# - pm2 restart index.js
after_success:
  - ssh root@xx.xxx.xx.xxx 'cd /home/blog/blog-node && git pull'
  - ssh root@xx.xxx.xx.xxx 'cd /home/blog/blog-node && rm -rf node_modules yarn.lock'
  - ssh root@xx.xxx.xx.xxx 'cd /home/blog/blog-node && yarn && ls'
  - ssh root@xx.xxx.xx.xxx 'cd /home/blog/blog-node && pm2 restart index.js'

xx.xxx.xx.xxx 是 ip,敏感信息所以我隐去了。

你在部署时加上一句 echo $PATH, 即打印出环境变量path的值。极度怀疑你单独登陆和使用travis-ci自动执行shell命令时,使用的环境变量path值不同!后者在path中没有加入pm2的路径。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题