© 2025 Rocky. All rights reserved.

|浙ICP备2025179428号-3|

魔法施展中...

技术文章

产品思考

heroku上部署vue项目

2023-02-14
5 分钟
...
nodejsexpress

公司有一个前端项目,近期折腾了一下,改成从 heroku 的一个替代产品 dokku 部署了,记录一下过程。 不熟悉 dokku 的可以看这里,是一个 heroku 的个人级替代产品,用法基本差不多。

dokku 和 heroku 一样,只支持有后端的项目,所以对于 vue 项目,我们需要用 express 来提供服务。

方案如下,先安装 express 和@suntower/serve-static2

yarn add express @suntower/serve-static2

在 package.json 里添加一行 start 命令:

"scripts": {
...
"start": "node root.js"
}

然后,root.js 的内容如下:

const express = require('express')
const serveStatic = require('@suntower/serve-static2')
const path = require('path')
app = express()
app.use(serveStatic(path.join(__dirname, 'dist'), { tryFile: '/index.html' }))
const port = process.env.PORT || 5000
app.listen(port)

网上有一些教程让在 packge.json 里添加一个 postinstall 命令,其实是没有必要的,nodejs 类项目,在 package.json 里有 build 和 start 命令就行 了。verel 也是这样一个要求。

有一些项目的路由使用了 HTML5 模式,需要 nginx 的 try_files 支持,所以其他一些教程里的 serve-static 包,并不满足需求,我 fork 了这个包,命名为@suntower/serve-static2 发布在了 npm.org 上。主要实现的功能是,当文件找不到时,自动使用 /index.html (这样也永远不会 404 了)。如果不需要这个特性,将 tryFile 选项留空即可。

💡 关于技术判断: 本文反映了我在真实系统中评估技术风险的思考方式。 我现在专注于为创始人和决策者提供独立的后端与架构风险评估服务。 如果您在重大技术决策前需要第三方意见,了解评估服务或联系咨询。

感谢阅读!如果您觉得这篇文章有帮助,欢迎分享给更多的朋友。

上一篇
技术分享

'我的三段创业经历'

刷到了 joyqi 写的[一个小感想](https://joyqi.com/life/cry-with-laughter.html),也有点小感触。

下一篇
职业发展

国内网络下优化nodejs项目在dokku下的部署速度

dokku 是一个类似heroku的paas平台,但是是个单机版,更适合个人或是小团队用。部署web项目超级方便。但是国内这个网络环境大家懂的,这是我摸索出来的一些踩坑经验。

📮 订阅更新
每周收到最新文章推送,不错过精彩内容

💡 我们尊重您的隐私,不会将邮箱用于其他用途

加载中...

猜你喜欢

职业发展

国内网络下优化nodejs项目在dokku下的部署速度

dokku 是一个类似heroku的paas平台,但是是个单机版,更适合个人或是小团队用。部署web项目超级方便。但是国内这个网络环境大家懂的,这是我摸索出来的一些踩坑经验。

2023-02-23
dokku
产品思考

创新型工作与重复型工作

按工作是否是简单的重复,可以把职员分为重复型工作者和创新型工作者。

2021-02-22
生活随笔

越南街头换钱潜规则:为什么有钱送上门,小贩却不赚?

去越南旅行,很多老驴友都会告诉你一个秘诀:除了金店和银行,街头那些卖地图、卖水果、甚至只是坐在路边抽水烟的小贩,其实都是移动的'微型钱庄'。

2026-01-25
旅行