15

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 webpacker:install我确实安装了 rails-erb-loader 并且如果我查看 webpacker 配置,erb 加载器正在被评估并且看起来对我来说是正确的,尽管除了运行以生成该配置之外我没有触及任何东西。

4

3 回答 3

25

如果你想做的是这样的:

import '../foo'

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

- .js.erb

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

import '../foo.js.erb'
于 2017-05-12T22:43:04.157 回答
14

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

来源(来自 cseelus 的评论)

于 2019-07-22T18:50:37.023 回答
6

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

extensions:
  - .erb

有关更多信息,请参阅webpacker 文档

于 2020-11-23T07:29:53.290 回答