У меня было приложение Vue, настроенное с шаблоном веб-пакета Vue CLI, и я пытался развернуть его на Heroku с помощью Node.js.
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.info("App now running on port", app.get('port'));
});
app.get('/', function (req, res) {
res.render(path.join(__dirname + '/dist/index.html'));
});
Почему это происходит и как это исправить?





First I run
npm run build… Then I rungit push heroku masterto deploy it"
Если вы нам что-то не говорите, npm run build здесь не делает ничего полезного. git push работает с коммитами, но ваши сгенерированные файлы dist/ не были зафиксированы.
Хотя, наверное, это нормально, поскольку Heroku может сам построить ваше приложение. Добавьте сценарий postinstall в файл package.json, чтобы рассказать, как:
"scripts": {
"postinstall": "npm run build"
}
Это предполагает, что ваша сборка действительно генерирует корректный вывод в dist/. Если этого не происходит, придется разобраться со второй проблемой.