我尝试使用rails-erb-loader .
在我的home.component.ts
import templateString from './home.component.html';
我有一个home.component.html.erb
<div class="row">...</div>
我还有一个由rake webpacker生成的app / javascript / packs / hello_erb.js.erb:install:erb
我收到以下错误:
ERROR in ./app/javascript/packs/hello_erb.js.erb
Module build failed: Error: rails-erb-loader failed with code: 1
我想这是加载ruby bin的配置错误,我想我可以解决这个问题,我的真正问题是以下错误:
ERROR in ./app/javascript/hello_angular/app/home/home.component.html.erb
Module parse failed: Unexpected token (1:0)
直接我的配置:
配置/的WebPack /装载机/ erb.js
module.exports = {
test: /\.erb$/,
enforce: 'pre',
exclude: /node_modules/,
use: [{
loader: 'rails-erb-loader',
options: {
runner: (/^win/.test(process.platform) ? 'ruby ' : '') + 'bin/rails runner'
}
}]
}
配置/的WebPack / environment.js
const { environment } = require('@rails/webpacker')
const typescript = require('./loaders/typescript')
environment.loaders.append('typescript', typescript)
const html = require('./loaders/html')
environment.loaders.append('html', html)
const erb = require('./loaders/erb')
environment.loaders.append('erb', erb)
module.exports = environment
我在config / webpacker.yml中启用了 .erb
扩展名
我的直觉是我的 .html.erb
由于某种原因被解析为javascript ...我不知道为什么 .
我没有成功地挖掘 webpacker
和 rails_erb_loader
问题 . 任何的想法 ?
顺便说一句,我看到了类似的问题:Webpacker in Rails Project using angular cannot import .html.erb and .css from external template
3 回答
好的,所以最后这个很简单......
我创建了一个加载器定义html_erb.js
就是这样,它在经典erb加载器之前捕获并将输出转换为html ...这就是我希望rails-erb-loader能够正确地做到这一点但是......
无论如何,它有效:D
我有一个类似的错误并通过在config / webpacker.rb中添加以下内容来修复它:
并在config / webpacker / environments.js中将
append
替换为prepend
for erb:此外,如果您执行以下操作,webpacker将提供erb加载程序:
rails webpacker:install:erb