我对 Rails + Vue 很陌生。我用 Vue 创建了一个新的 rails 项目,并作为我正在使用 PUG 的模板的渲染器。在 VUE 文件中,我有:
<template src="../pages/cars.pug.erb" lang='pug'></template>
我需要页面上的资产。对于 PUG,我添加了一个装载机
module.exports = {
test: /\.pug(\.erb)?$/,
loaders: 'pug-html-loader'
}
我的 cars.pug.erb 看起来像
div
<% helpers = ActionController::Base.helpers %>
div(class="<%= 1 + 1%>")
但它给了我
ERROR in ./app/assets/javascript/packs/pages/cars.pug.erb
12:27:54 webpacker.1 | Module parse failed: ../node_modules/pug-html-loader/lib/index.js!../node_modules/rails-erb-loader/index.js??ref--3!../app/assets/javascript/packs/pages/cars.pug.erb Unexpected token (1:0)
12:27:54 webpacker.1 | You may need an appropriate loader to handle this file type.
12:27:54 webpacker.1 | | <div><div class="2"></div></div>
12:27:54 webpacker.1 | @ multi (webpack)-dev-server/client?http://0.0.0.0:8080 ./app/assets/javascript/packs/pages/cars.pug.erb
看起来它呈现 .erb 和 .pug 但由于某种原因它停止了(顺便说一句,我尝试编写加载器:['html-loager', 'pug-html-loader'] 并且它开始忽略 .erb)
有人可以告诉我如何解决这个烦人的问题吗?
PS Rails - 5.1.3 和带有最新库的全新项目 PPS 我在这里提出了一个问题https://github.com/rails/webpacker/issues/620
2017 年 8 月 10 日更新:
事情是关于 .vue
此代码工作正常
<template lang='pug'>
div
div <%= "test"%>
</template>
但是当它在一个单独的文件中时
<template src="../pages/cars.pug.erb" lang='pug'></template>
这没用。我认为“vue-loader”已经是个问题了