在 Dokku 中以生产模式部署 nodeJS 应用程序

Deploy nodeJS app in production mode in Dokku

当我通过 Git 将 nodeJS 应用程序部署到 Dokku 时,它 运行 命令:

-----> Build
   Running build

   > my-project-name@0.0.0 build /tmp/build
   > ng build

这是一个 Angular 应用程序,我希望它在生产模式下构建,即:ng build --aot --prod

如何在 Dokku 的构建阶段影响 运行 命令?

这是我的 package.jsonscripts 部分:

  "scripts": {
    "ng": "ng",
    "start": "node server.js",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  }, 

我试过在上面添加 "postinstall": "ng build --aot --prod"。这确实 运行 安装后的正确命令,但随后构建阶段开始并且它 运行s ng build 再次出现(因此覆盖生产)。

也许我可以更改上面的 "build": "ng build" 以添加 --aot --prod - 但我不确定当 运行 在本地安装我的 Node 应用程序时会有什么影响,我从不希望--prod?

您可以在本地机器上 运行 ng build --aot --prod,然后提交 dist 文件夹(将其从 .gitignore 中删除)。 然后在项目的根文件夹中创建一个名为“.static”的空文件。

然后在dokku服务器上运行:

dokku config:set yourappname NGINX_ROOT=dist BUILDPACK_URL=https://github.com/dokku/buildpack-nginx

然后 运行 "git push dokku master".

通过这种方法,您不必担心 package.json 脚本。