Подтвердить что ты не робот

Как развернуть node, который использует Webpack для heroku

Я использую webpack.

Также я не фиксирую папку npm_modules и общую папку, где все сгенерированные файлы. И я не могу понять, как создать мое приложение (у меня есть команда сборки webpack) после развертывания и настройки моего сервера (он уже ищет общую папку).

Мне кажется, что плохая идея для фиксации перед загрузкой. Может быть, есть нежные решения... Любые мысли?

Forked from: Как развернуть node, который использует Gulp для heroku

4b9b3361

Ответ 1

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

это лучше, потому что если вы используете postinstall, каждый раз, когда вы делаете npm i, сборка script запускается

Ответ 2

Сделайте это в postinstall script, как предложено @orlando:

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

В этом подходе убедитесь, что heroku config:set NODE_ENV=production heroku config:set NPM_CONFIG_PRODUCTION=true

ИЛИ

Вы можете найти этот пользовательский buildpack heroku-buildpack-webpack для использования.

Эти ссылки могут помочь вам понять:

Ответ 3

В 2019 году самый простой способ сделать это - использовать heroku/nodejs (автоматически выбирается, если у вас есть package.json в корне хранилища) и добавить скрипт build в пакет json:

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

Heroku автоматически запустит этот скрипт при развертывании. Бонусные баллы, потому что это интуитивно понятный скрипт для запуска сборки локально или в CI.

Это описано в документе "Рекомендации по разработке Heroku для Node.js":

Скрипты жизненного цикла npms делают отличные хуки для автоматизации. Heroku предоставляет настраиваемые хуки, которые позволяют вам запускать пользовательские команды до или после того, как мы установим ваши зависимости. Если вам нужно что-то запустить перед heroku-prebuild приложения, вы можете использовать heroku-prebuild. Нужно создать ресурсы с grunt, gulp, browserify или webpack? Сделайте это в скрипте build.