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
"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é
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=production
heroku config:set NPM_CONFIG_PRODUCTION=true
[~ # ~] ou [~ # ~]
Vous pouvez trouver ce buildpack personnalisé heroku-buildpack-webpack utilisable.
Ces liens peuvent vous aider à mieux comprendre:
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 scriptbuild
.