将webpacker从4.2.2升级到5.0.1不再在Assets:precompile之前运行yarn安装

问题描述 投票:0回答:2

在执行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时,有人遇到过同样的问题吗?

ruby-on-rails sprockets webpacker
2个回答
0
投票

注释/删除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不再需要这些,它们也可能导致错误。

希望有所帮助:)


0
投票

我们目前在没有纱桶的Rails 5.2.4上。 Webpacker 5.0.1的yarn安装任务将调用binstub,该内部将调用yarnpkg。没有binstub,rake任务将无济于事。添加缺少的垃圾箱即可解决我们的问题。

© www.soinside.com 2019 - 2024. All rights reserved.