在 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.json
的 scripts
部分:
"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 脚本。
当我通过 Git 将 nodeJS 应用程序部署到 Dokku 时,它 运行 命令:
-----> Build
Running build
> my-project-name@0.0.0 build /tmp/build
> ng build
这是一个 Angular 应用程序,我希望它在生产模式下构建,即:ng build --aot --prod
。
如何在 Dokku 的构建阶段影响 运行 命令?
这是我的 package.json
的 scripts
部分:
"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 脚本。