© 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
职业发展

什么是最重要的人

个人特质上讲,最难得的是这种能把事儿做细,反复迭代,把事儿优化到极致的人。

2022-09-06
生活随笔

关于独立

- 第二层是经济独立,会自己赚钱养活自己。

2022-01-16