Обновление webpacker с 4.2.2 до 5.0.1 больше не запускает установку пряжи перед активами: прекомпиляция - PullRequest
0 голосов
/ 06 апреля 2020

После выполнения каждого шага в разделе Обновление веб-упаковщика , обновление с 4.2.2 до 5.0.1 приводит к тому, что yarn install больше не вызывается во время rails assets:precompile. Это приводит к тому, что интерфейсные пакеты, полученные из нашего файла package.json, не могут быть найдены в процессе компиляции ресурса.

Это выделяется, когда CI запускает rails assets:precompile. Ранее assets:precompile запускал yarn install до компиляции нашего application.js файла. Я добавил флаг --trace, и он работает так, как если бы он пропускал yarn install.

** Invoke yarn:install (first_time)
** Execute yarn:install
** Execute assets:precompile
rails aborted!
Sprockets::FileNotFound: couldn't find file 'moment' with type 'application/javascript'

. Тот же CI-запуск с более старой версией веб-пакета отображает вывод yarn install, как и ожидалось. Кто-нибудь сталкивался с такой же проблемой при столкновении с 5.x?

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

В настоящее время мы находимся на Rails 5.2.4, в которой нет binstub для пряжи. Задача установки пряжи Webpacker 5.0.1 вызывает binstub, который внутренне вызывает yarnpkg. Без присутствия binstub задача rake не сделала бы ничего, что мы испытывали. Добавление отсутствующего binstub решило наши проблемы.

0 голосов
/ 06 апреля 2020

Комментируйте / удаляйте строку звездочек из config / application.rb:

# config/application.rb

# Remove the line below
 require "sprockets/railtie"

Вы также можете удалить config.assets ... строки из всех ваших config/environment/*.rb файлов:

# config/environment/*.rb

# Remove the following lines
  config.assets.debug = true
  config.assets.quiet = true

Это больше не требуется для Webpacker и может также вызвать ошибки.

Надеюсь, это поможет:)

...