网页包Pug/HTML加载程序在生产模式下将大写字母转换为小写字母
我分别使用vue单文件组件和将标记和逻辑分离到网页包Pug/HTML加载程序在生产模式下将大写字母转换为小写字母,html,webpack,vuejs2,webpack-loader,pug-loader,Html,Webpack,Vuejs2,Webpack Loader,Pug Loader,我分别使用vue单文件组件和将标记和逻辑分离到.pug和.ts文件。如果您感兴趣的是我为什么不统一,请参阅评论部分 问题 在开发构建模式中,导出的模板是正确的(为了可读性,我对其进行了美化): 问题在于“html加载程序”。在生产模式下,它的选项minimize设置为true) 我在angular中遇到了类似的问题,必须取消设置一些选项,如(请参阅以供参考) //webpack.config.js { 测试:/\.pug$/u, 其中一项:[ //对于“.vue”文件 { resourceQue
.pug
和.ts
文件。如果您感兴趣的是我为什么不统一,请参阅评论部分
问题
在开发构建模式中,导出的模板是正确的(为了可读性,我对其进行了美化):
问题在于“html加载程序”。在生产模式下,它的选项minimize
设置为true
)
我在angular中遇到了类似的问题,必须取消设置一些选项,如(请参阅以供参考)
//webpack.config.js
{
测试:/\.pug$/u,
其中一项:[
//对于“.vue”文件
{
resourceQuery://^\?vue/u,
用法:[“普通装泥机”]
},
//用于“.pug”文件
{
用法:[“html加载器”、“哈巴狗html加载器”]
}
],
选项:{
最小化:{//谢谢你的回答。你的解决方案不起作用,但它是一个提示,多亏了它,我解决了我的问题。我编辑了你的答案。对每个人来说:看起来我的版本被拒绝了。上面的配置无效,因为选项
必须与特定的加载程序关联。要使它起作用,我们需要[{loader:“html加载器”,选项:{minimize:{caseSensitive:true}}},“帕格html加载器”]
而不是[“html加载器”,“帕格html加载器”]
。
import template from "@UI_Framework/Components/Controls/InputFields/InputField.vue.pug";
import { Component, Vue } from "vue-property-decorator";
console.log(template);
@Component({
template,
components: {
CompoundControlBase
}
})
export default class InputField extends Vue {
// ...
}
const WebpackConfig = {
// ...
optimization: {
noEmitOnErrors: !isDevelopmentBuildingMode,
minimize: !isDevelopmentBuildingMode
},
module: {
rules: [
{
test: /\.vue$/u,
loader: "vue-loader"
},
{
test: /\.pug$/u,
oneOf: [
// for ".vue" files
{
resourceQuery: /^\?vue/u,
use: [ "pug-plain-loader" ]
},
// for ".pug" files
{
use: [ "html-loader", "pug-html-loader" ]
}
]
},
// ...
]
}
}