【问题标题】:How to start a package.json script in pm2如何在 pm2 中启动 package.json 脚本
【发布时间】:2017-09-01 22:24:41
【问题描述】:

我想妖魔化我的 express js graphql api 服务器。在 windows 本地开发中,我可以通过运行这个命令来启动我的服务器,它工作正常:

yarn dev

此启动命令在我的package.json 中定义如下:

  "scripts": {
    "dev": "cross-env NODE_ENV=development DEBUG=express:* nodemon --exec babel-node src/index.js"
  },

当我尝试在我的 linux 服务器的 pm2 中启动它时,我得到了这样的成功:

latheesan@app:~/apps/tweet/server$ pm2 start yarn -- dev
[PM2] Starting /usr/bin/yarn in fork_mode (1 instance)
[PM2] Done.

但是,当我输入 pm2 status 时,它显示错误,而且显示看起来很奇怪:

我在 Ubuntu 16.04 上运行这个。

如果我不使用 pm2 并在我的 ubuntu 服务器中使用 yarn dev 启动应用程序 - 它运行良好。

有什么想法吗?

【问题讨论】:

  • Nodemon 已经能够监视文件更改并重新启动服务器,所以也许您不需要使用 pm2?
  • 是的,我现在意识到了这一点。我正在尝试为 pm2 减去 Nodemon 组合一个 json 配置。

标签: node.js ubuntu-16.04 pm2 yarnpkg


【解决方案1】:

Pm2 现在支持 npm

$ pm2 start --interpreter babel-node server.js

(或)

$ pm2 start npm --start

(或)

$ pm2 start npm --name "myAPP" --start

(或)

$ pm2 start npm --name "{app_name}" --run "{script_name}"

【讨论】:

    【解决方案2】:

    我现在已经解决了这个问题。

    通过npm install -g babel-cli全局安装babel-node

    然后在 json 中创建 pm2 配置:pm2.json

    {
        "apps": [
            {
                "name": "Tweet GraphQL Server",
                "exec_interpreter": "babel-node",
                "script": "index.js",
                "merge_logs": true,
                "cwd": "./src",
                "env": {
                    "NODE_ENV": "production"
                }
            }
        ]
    }
    

    现在我可以运行这个命令来启动 pm2 进程:pm2 start pm2.json

    【讨论】:

      【解决方案3】:

      我在我的应用程序中这样做:

      package.json:

      "scripts": {
          "start": "... start application script ...",
          "start:dev": "... start application script as development mode ...",
          "pm2": "pm2 start npm --name \"CustomeNameForPM2\" -- run start --watch",
          "pm2:dev": "pm2 start npm --name \"CustomeNameForPM2\" -- run start:dev --watch"
      }
      

      现在您可以使用 npm run pm2 或 npm run pm2:dev 轻松运行 pm2

      但如果你想做得更好,你可以阅读 pm2 文档并使用pm2 ecosystem config file

      【讨论】:

        猜你喜欢
        • 2017-07-07
        • 2023-01-12
        • 1970-01-01
        • 2022-07-18
        • 1970-01-01
        • 2016-07-17
        • 1970-01-01
        • 2018-11-30
        • 2021-06-24
        相关资源
        最近更新 更多