J'essaie de pousser le dépôt github LargeGroupVideoChat-Web- Webpack vers Heroku. Localement, cela fonctionne bien, avec ces scripts dans le fichier package.json :

"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --config ./scripts --mode development",
"build": "cross-env NODE_ENV=production webpack --config ./scripts --mode production"},

Et les paramètres du pack Web dans le fichier index.js :

module.exports = {
 entry: {
   index: "./src/index.js",
 },
 devtool: "inline-source-map",
 module: loaders,
 plugins,
 resolve: {
   extensions: [ ".js" ],
 },
 output: {
   filename: "[name].[hash].js",
   path: path.resolve(__dirname, distPath),
 }, ...

Cependant, après avoir poussé vers Heroku, il se bloque avec une erreur. J'ai ajouté le fichier server.js avec ce code :

const express = require('express');
const path = require('path');
const port = process.env.PORT || 8080;
const app = express();

// the __dirname is the current directory from where the script is running
app.use(express.static(__dirname));

// send the user to index html page inspite of the url
app.get('*', (req, res) => {
 res.sendFile(path.resolve(__dirname, 'index.html'));
});

app.listen(port);

Il fonctionne bien, mais il ne sert que le fichier index.html et le bundle webpack n'est pas lié. Existe-t-il un moyen rapide de pousser l'application vers Heroku ? Ou je dois réécrire les paramètres du pack Web d'une manière ou d'une autre ?

0
Александр Шемелин 6 sept. 2020 à 11:11

1 réponse

Meilleure réponse

Ok, le fichier server.js a résolu le problème (de un autre repo) :

var path = require('path');
var express = require('express');

var app = express();

app.use(express.static(path.join(__dirname, 'dist')));
app.set('port', process.env.PORT || 8080);

var server = app.listen(app.get('port'), function() {
  console.log('listening on port ', server.address().port);
});
0
Александр Шемелин 6 sept. 2020 à 09:54