在执行webpacker upgrading部分中的每个步骤之后,从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'
与较早的webpack版本运行的相同CI将按预期显示yarn install
输出。升级到5.x时,有人遇到过同样的问题吗?
注释/删除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不再需要这些,它们也可能导致错误。
希望有所帮助:)
我们目前在没有纱桶的Rails 5.2.4
上。 Webpacker 5.0.1
的yarn安装任务将调用binstub,该内部将调用yarnpkg
。没有binstub,rake任务将无济于事。添加缺少的垃圾箱即可解决我们的问题。