ruby-on-rails - RAILS_ENV=生产轨道资产:预编译不适用于 RSpec
问题描述
我正在尝试运行
RAILS_ENV=production rails assets:precompile
我收到错误 NameError:未初始化的常量 RSpec。我该如何摆脱这个错误?
一些上下文:我正在尝试在将图像和 css 文件发送到 AWS Beanstalk 之前对其进行预编译。很像这个问题 RoR App:“资产 'application.css' 不存在于资产管道中”在移动到生产服务器后RoR 应用程序:“资产 'application.css' 不存在于资产管道中”之后移动到生产服务器
堆栈跟踪:
[15:49:45] [master] /xxx/CaIng : RAILS_ENV=production rails assets:precompile --trace
rails aborted!
NameError: uninitialized constant RSpec
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:79:in `block in load_missing_constant'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `without_bootsnap_cache'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:79:in `rescue in load_missing_constant'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:58:in `load_missing_constant'
/xxx/CaIng/lib/tasks/custom_rspec.rake:3:in `<main>'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/engine.rb:650:in `block in run_tasks_blocks'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/engine.rb:650:in `each'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/engine.rb:650:in `run_tasks_blocks'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/application.rb:515:in `run_tasks_blocks'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/engine.rb:459:in `load_tasks'
/xxx/CaIng/Rakefile:6:in `<main>'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/rake_module.rb:29:in `load_rakefile'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:703:in `raw_load_rakefile'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:104:in `block in load_rakefile'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:103:in `load_rakefile'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:22:in `block in perform'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:186:in `standard_exception_handling'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/command.rb:48:in `invoke'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/commands.rb:18:in `<main>'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:9:in `<main>'
Caused by:
NameError: uninitialized constant RSpec
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:60:in `block in load_missing_constant'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:16:in `allow_bootsnap_retry'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:59:in `load_missing_constant'
/xxx/CaIng/lib/tasks/custom_rspec.rake:3:in `<main>'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/engine.rb:650:in `block in run_tasks_blocks'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/engine.rb:650:in `each'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/engine.rb:650:in `run_tasks_blocks'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/application.rb:515:in `run_tasks_blocks'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/engine.rb:459:in `load_tasks'
/xxx/CaIng/Rakefile:6:in `<main>'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/rake_module.rb:29:in `load_rakefile'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:703:in `raw_load_rakefile'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:104:in `block in load_rakefile'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:103:in `load_rakefile'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:22:in `block in perform'
/Users/flo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:186:in `standard_exception_handling'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/command.rb:48:in `invoke'
/xxx/CaIng/.gems/gems/railties-5.2.3/lib/rails/commands.rb:18:in `<main>'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
/xxx/CaIng/.gems/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:9:in `<main>'
我的宝石文件:
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.6.3'
gem 'rails', '~> 5.2.3'
gem 'pg', '>= 0.18', '< 2.0'
gem 'puma', '~> 3.11'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'aws-sdk'
gem 'coffee-rails', '~> 4.2'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'bootsnap', '>= 1.1.0', require: false
group :development, :test do
debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
gem 'capybara'
gem 'rspec-rails'
gem 'database_cleaner'
gem 'factory_bot_rails'
gem 'rails-controller-testing'
gem 'selenium-webdriver'
end
group :development do
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'devise'
解决方案
您不应该在开发组中拥有这些宝石,只有 byebug 应该在两个组中。
group :development, :test do
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end
group :test do
gem 'capybara'
gem 'rspec-rails'
gem 'database_cleaner'
gem 'factory_bot_rails'
gem 'rails-controller-testing'
gem 'selenium-webdriver'
end
group :development do
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
end
推荐阅读
- django - 基于公共字段组合两个 Django 查询集
- java - JavaFX:如何让 setCellValueFactory 忽略 ObservableArray 中的空项?
- c++ - 当关系运算符的含义相同时,为什么结果会不同?
- regex - 多行“[redex]::match()”输出在powershell中显示为一行
- javascript - 在 javascript 函数中传递值时出错
- c# - 将对象的内容写入文本文件
- html - 使用 jQuery wrap 方法对链接进行有用的扩展
- python - 在保持原始矩阵大小的同时对 2D 矩阵进行采样
- javascript - 为什么我的 JavaScript 文件不能从另一个文件访问定义的常量?
- windows - 无法在 Powershell 或 Python 中获取当前 CPU 频率