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

Rails 5.1 webpacker "import" a .js.erb file?

app/javascript/packs/application.js 我正在尝试 import "../foo" 文件所在的位置 foo.js.erb。 Webpacker 和 yarn 对于 application.js 中的其他导入非常有用,例如 import "../bar" 当该文件是 bar.js 但如果我尝试使用 .js.erb 文件,我会从 webpack 得到这个错误-开发服务器:

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 loader 正在评估中并且看起来很适合我,尽管除了 运行 rails webpacker:install 生成该配置。

如果你想做的是:

import '../foo'

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

- .js.erb

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

import '../foo.js.erb'

To add Erb support in your JS templates, run bundle exec rails webpacker:install:erb on a Rails app already setup with Webpacker.

source(来自 cseelus 的评论)

For rails 6.x, 运行 bundle exec rails webpacker:install:erb 并在 config/webpacker.yml

中添加以下内容
extensions:
  - .erb

有关详细信息,请参阅 webpacker documentation