Ruby on rails Rails 5.1 webpacker“;进口;一个.js.erb文件?
从Ruby on rails Rails 5.1 webpacker“;进口;一个.js.erb文件?,ruby-on-rails,ruby-on-rails-5.1,webpacker,Ruby On Rails,Ruby On Rails 5.1,Webpacker,从app/javascript/packs/application.js中,我试图导入文件所在的foo.js.erb。Webpacker和Thread对于application.js中的其他导入非常有效,例如,import../bar“当该文件为bar.js时,但是如果我尝试使用.js.erb文件,我会从webpack dev服务器收到以下错误: ERROR in ./app/javascript/packs/application.js Module not found: Error: Can
app/javascript/packs/application.js
中,我试图导入文件所在的foo.js.erb
。Webpacker和Thread对于application.js中的其他导入非常有效,例如,import../bar“
当该文件为bar.js
时,但是如果我尝试使用.js.erb
文件,我会从webpack dev服务器收到以下错误:
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/webpack.yml
,以包括
- .js.erb
在扩展列表中。否则,需要完全指定要导入的文件名
import '../foo.js.erb'
要在JS模板中添加Erb支持,请在已使用webpacker安装的rails应用程序上运行bundle exec rails webpacker:install:Erb
(来自cseelus的评论)对于rails 6.x,运行
bundle exec rails webpacker:install:erb
并将以下内容添加到配置/webpacker.yml
extensions:
- .erb
有关更多信息,请参见:似乎不再是
config/webpack/paths.yml
而是config/webpack/webpack.yml
。令人困惑的是,扩展列表已经包含-.erb
,但要添加的扩展是-.js.erb
。不要忘记安装。erb对webpacker的支持:rails 6的更新,路径是config/webpacker.yml
,通过将config/webpacker.yml中的文件扩展名固定为.js.erb
,不需要作为import'../foo.js.erb'
加载。非常感谢@fydelio它帮助我解决了同样的问题!