node.js - 在 Heroku 上部署 Vue 应用程序时出现意外的语法错误
问题描述
我有一个使用 Vue CLI webpack 模板设置的 Vue 应用程序,我试图用 Node.js 将它部署到 Heroku。
- 首先我运行
npm run build
(用webpack.prod
文件构建),让所有文件都在dist/
- 然后我跑去
git push heroku master
部署它
当我打开网页时,出现错误。我注意到所有.js
文件都已更改为包含我的相同内容index.html
:
这是我的server.js
文件:
var express = require('express');
var path = require('path');
var history = require('connect-history-api-fallback');
var app = express();
var staticFileMiddleware = express.static(path.join(__dirname + '/dist'));
app.set('port',process.env.PORT||5000);
app.use(history({
disableDotRule: true,
verbose: true
}));
app.use(staticFileMiddleware);
app.listen(app.get('port'), function () {
console.log("App now running on port", app.get('port'));
});
app.get('/', function (req, res) {
res.render(path.join(__dirname + '/dist/index.html'));
});
为什么会发生这种情况,我该如何解决?
解决方案
首先我运行
npm run build
......然后我运行git push heroku master
部署它”
除非你没有告诉我们什么,否则在npm run build
这里没有任何用处。git push
对提交进行操作,但您生成的dist/
文件尚未提交。
不过,这可能没问题,因为 Heroku可以自己构建您的应用程序。将postinstall
脚本添加到您的package.json
文件中以告诉它如何:
"scripts": {
"postinstall": "npm run build"
}
这假定您的构建实际上是在dist/
. 如果这没有发生,那么还有第二个问题需要处理。
推荐阅读
- javascript - 在一个打印作业中打印多个标签
- android - Parse-Server FCM:一次只显示一个通知
- python-3.x - 如何检查列表的所有元素是否都在字符串列表中
- animation - SwiftUI - 如何更改视图的层次位置?
- android - 不调用 onCreateOptionsMenu。工具栏显示但没有任何菜单和图标为空
- javascript - 使用 Axios 发布 JSON 的问题(“传递的值不是字符串或 JSON 对象”)
- r - 循环遍历多个列并在 R 中为每个列绘制一个图?
- mysql - Mysql - 我有 3 个独特的表,需要提示以获取计数的详细信息
- reactjs - react-router-dom 匹配对象 isExact false
- ruby - 试图 AND 列表列表中的所有元素