【发布时间】:2020-01-16 10:54:05
【问题描述】:
我正在尝试启动并运行一个基本的 Rails 部署(rails new project-name --webpack)。一切正常,rake webpacker:compile 工作。但是,一旦我添加 rails-erb-loader (rails webpacker:install:erb) 它就会破坏编译过程。如果 webpacker 开始编译,它只会在“正在编译……”处冻结,并且永远不会结束。这可能会持续数小时而没有结果,直到我终止该过程。没有错误消息。
我尝试过以不同方式格式化包和导入文件,我尝试过将包留空,我尝试过删除所有包都指向空白。我已将问题缩小到默认的库存 Rails 部署,并安装了默认的 rails-erb-loader。 Rails 可以工作,添加 erb 加载程序会破坏它。
我已经从 webpacker 文件夹中的文件中删除了所有 cmets(因为这些将由 ERB 解释)。我还将文件扩展名更改为 .js.erb。 这是 3 天前的工作,我不知道我现在做错了什么。
-- 复制
(Enter into bash)
rails new project-name --webpack
cd project-name
rake webpacker:compile (will work)
rails webpacker:install:erb
rake webpacker:compile (will hang)
-- 控制台输出((--trace 将在“编译..”后不返回任何输出))
rake webpacker:compile
Compiling…
^C#<Thread:0x00007fffc66119f8@/usr/share/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/open3.rb:287 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
1: from /usr/share/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/open3.rb:287:in `block (2 levels) in capture3'
/usr/share/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/open3.rb:287:in `read': stream closed in another thread (IOError)
#<Thread:0x00007fffc66118b8@/usr/share/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/open3.rb:288 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
1: from /usr/share/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/open3.rb:288:in `block (2 levels) in capture3'
/usr/share/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/open3.rb:288:in `read': stream closed in another thread (IOError)
rake aborted!
Interrupt:
/home/melvin/.rvm/gems/ruby-2.6.3/gems/webpacker-4.0.7/lib/webpacker/compiler.rb:61:in `run_webpack'
/home/melvin/.rvm/gems/ruby-2.6.3/gems/webpacker-4.0.7/lib/webpacker/compiler.rb:21:in `compile'
/home/melvin/.rvm/gems/ruby-2.6.3/gems/webpacker-4.0.7/lib/webpacker/commands.rb:18:in `compile'
/home/melvin/.rvm/gems/ruby-2.6.3/gems/webpacker-4.0.7/lib/webpacker.rb:27:in `compile'
/home/melvin/.rvm/gems/ruby-2.6.3/gems/webpacker-4.0.7/lib/tasks/webpacker/compile.rake:31:in `block (4 levels) in <main>'
/home/melvin/.rvm/gems/ruby-2.6.3/gems/webpacker-4.0.7/lib/tasks/webpacker/compile.rake:6:in `ensure_log_goes_to_stdout'
/home/melvin/.rvm/gems/ruby-2.6.3/gems/webpacker-4.0.7/lib/tasks/webpacker/compile.rake:30:in `block (3 levels) in <main>'
/home/melvin/.rvm/gems/ruby-2.6.3/gems/webpacker-4.0.7/lib/webpacker.rb:20:in `with_node_env'
/home/melvin/.rvm/gems/ruby-2.6.3/gems/webpacker-4.0.7/lib/tasks/webpacker/compile.rake:29:in `block (2 levels) in <main>'
/home/melvin/.rvm/gems/ruby-2.6.3/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
/home/melvin/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:24:in `eval'
/home/melvin/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:24:in `<main>'
Tasks: TOP => webpacker:compile
(See full trace by running task with --trace)
【问题讨论】:
-
+1,因为如果你能解决这个问题,我真的很感兴趣,因为这是我使用 Webpack on Rails 时遇到的 8317584 问题之一。
-
在此期间必须采取行动。如果您出于与我相同的原因使用它 - 将所有文件(图像)导入目录中 - 您可能会发现这很有用并完全省略 rails-erb-loader:
require.context('relative/path/to/images', true, /\.(svg|jpg|gif|jpeg|bmp|png)$/);跨度>
标签: ruby-on-rails webpack erb