web-dev-qa-db-fra.com

Comment déployer un nœud qui utilise Webpack sur Heroku

J'utilise webpack.

De plus, je ne valide pas le dossier npm_modules et le dossier public, où se trouvent tous les fichiers générés. Et je ne peux pas comprendre comment créer mon application (j'ai la commande webpack build) après avoir déployé et configuré mon serveur (il recherche déjà un dossier public).

Cela me semble une mauvaise idée de s'engager avant le téléchargement. Peut-être qu'il y a des décisions douces ... Des pensées?

Provenant de: Comment déployer un nœud qui utilise Gulp sur herok

35
Inanc Gumus
"heroku-postbuild": "webpack -p --config ./webpack.prod.config.js --progress"

c'est mieux parce que si vous utilisez postinstall, chaque fois que vous le faites npm i le script de build est viré

64
Gaurav Mukherjee

Faites-le dans un script postinstall comme suggéré par @orlando:

"postinstall": "webpack -p --config ./webpack.prod.config.js --progress"

Dans cette approche, assurez-vous de heroku config:set NODE_ENV=productionheroku config:set NPM_CONFIG_PRODUCTION=true

[~ # ~] ou [~ # ~]

Vous pouvez trouver ce buildpack personnalisé heroku-buildpack-webpack utilisable.

Ces liens peuvent vous aider à mieux comprendre:

14

En 2019, la manière la plus simple de le faire est d'utiliser le heroku/nodejs buildpack (sélectionné automatiquement si vous avez un package.json à la racine du référentiel) et ajoutez un script build au package json:

"build": "webpack --mode production --config ./webpack.prod.config.js"

Heroku exécutera automatiquement ce script lors du déploiement. Points bonus car il s'agit du script intuitif à exécuter pour tester la build localement ou en CI.

Ceci est décrit dans le document Heroku's Best Practices for Node.js Development :

les scripts de cycle de vie de npm constituent d'excellents crochets pour l'automatisation. Heroku fournit des crochets personnalisés qui vous permettent d'exécuter des commandes personnalisées avant ou après l'installation de vos dépendances. Si vous devez exécuter quelque chose avant de créer votre application, vous pouvez utiliser le heroku-prebuild script. Besoin de créer des actifs avec grunt, gulp, browserify ou webpack? Faites-le dans un script build.

1
ford