Rails 5.1 webpacker" import"一个.js.erb文件?

时间:2017-05-12 19:44:42

标签: ruby-on-rails ruby-on-rails-5.1 webpacker

app/javascript/packs/application.js我尝试import "../foo"文件为foo.js.erb。 Webpacker和yarn适用于application.js中的其他导入,例如import "../bar"当该文件为bar.js时,如果我尝试使用.js.erb文件,我会从webpack-dev中收到此错误-server:

ERROR in ./app/javascript/packs/application.js
Module not found: Error: Can't resolve '../foo' in '/Users/blah/backlot/projects/test/app/javascript/packs'
 @ ./app/javascript/packs/application.js 3:0-27
 @ multi (webpack)-dev-server/client?http://localhost:8080 ./app/javascript/packs/application.js

我确实安装了rails-erb-loader,如果我查看webpacker配置,那么erb加载器正在评估并且看起来对我来说虽然除了运行{{1}之外我没有触及任何其他内容生成该配置。

3 个答案:

答案 0 :(得分:10)

如果您想要做的是:

import '../foo'

当实际文件为foo.js.erb时,您需要更新config/webpack/paths.yml以包含

- .js.erb

在扩展名列表中。否则,您需要完全指定要导入的文件名

import '../foo.js.erb'

答案 1 :(得分:1)

对于Rails 6.x,运行run bundle exec rails webpacker:install:erb并将以下内容添加到config/webpacker.yml

extensions:
  - .erb

有关更多信息,请参见webpacker documentation

答案 2 :(得分:0)

  

要在您的JS模板中添加Erb支持,请在已经使用Webpacker设置的Rails应用上运行bundle exec rails webpacker:install:erb

source(来自cseelus的评论)