从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}之外我没有触及任何其他内容生成该配置。
答案 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的评论)