我有一个使用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'));
});
为什么会这样,我该如何解决?
答案 0 :(得分:0)
首先我运行
npm run build
…然后我运行git push heroku master
进行部署”
除非您没有告诉我们一些信息,否则npm run build
在这里没有任何用处。 git push
适用于提交,但尚未提交您生成的dist/
文件。
不过,自Heroku can build your application itself起,这可能还可以。在您的postinstall
文件中添加一个package.json
脚本,以告诉其操作方法:
"scripts": {
"postinstall": "npm run build"
}
这假设您的构建实际上正在dist/
中生成有效输出。如果那没有发生,那么还有第二个问题要解决。