我使用 babel 在 node js 中有两个 API,我有一个 package.json 命令用于使应用程序正常工作,这是命令:
"build": "del-cli dist/ && babel src -d dist --copy-files",
"serve": "cross-env NODE_ENV=production node dist/index.js",
"start:noupdate": "cross-env NODE_ENV=development babel-node src/index.js",
"start:serve": "cross-env NODE_ENV=production node dist/index.js",
我有两个域,一个是 https://api.website1.com.br ,另一个是 https://website2.com.br/api 。
它们具有相同的 env 文件名,但每个数据库都有不同的数据,即 .env.production 和 .env.development
当我做这个“ yarn 构建”时,我的 Linux 执行这个命令:
"build": "del-cli dist/ && babel src -d dist --copy-files",
当我尝试在我的真实网络服务器上进入生产模式时,这工作正常,我从项目中转到文件夹并运行此命令以使应用程序与 PM2 联机:
pm2 start npm -- run-script start:serve NODE_ENV=production
这将使此命令起作用:
"cross-env NODE_ENV=production node dist/index.js"
该应用程序运行得很好,但我有一个问题,他只运行一个,并没有创建新的 PM2 应用程序,他只是重新启动我启动的程序。
例如,如果我转到 https://api.website1.com.br 中的文件夹并首先在他启动时运行此命令,但我转到另一个他没有启动但重新加载我已经早期的应用程序不要创建新应用程序,我是什么做错了吗?
最佳答案
我设法使用 pm2 生态系统 来解决这个问题,这是我在 http://pm2.keymetrics.io/docs/usage/application-declaration/ 的文档中找到的
我配置了默认文件并为我的APP命名:
module.exports = {
apps : [{
name: "app",
script: "./app.js",
env: {
NODE_ENV: "development",
},
env_production: {
NODE_ENV: "production",
}
}]
}
并使用此命令 pm2 start生态系统.config.js 现在正在工作,我在这里发布以了解是否有人有同样的问题
关于node.js - 将环境变量传递给 pm2 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57627934/