首页 > 解决方案 > 在 Dokku 中以生产模式部署 nodeJS 应用程序

问题描述

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

-----> Build
   Running build

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

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

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

这是scripts我的部分package.json

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

我已经尝试添加"postinstall": "ng build --aot --prod"到上述内容。这确实在安装后运行了正确的命令,但随后构建阶段开始并ng build再次运行(因此覆盖了生产)。

也许我可以"build": "ng build"在上面进行更改以添加--aot --prod- 但我不确定在本地运行我的 Node 应用程序时会产生什么影响,这是我从不想要的地方--prod

标签: node.jsangulardokku

解决方案


您可以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 脚本。


推荐阅读