默认分类

使用ejs 的单引号变双引号问题

今日写ejs发现个坑

首先html是这样

<script>
    // 输出全局变量
    window._global = JSON.parse('<%-JSON.stringify(_global)%>');
</script>

然后使用HtmlWebpackPlugin输出 ejs,由node渲染

new HtmlWebpackPlugin({
    template: path.resolve(__dirname, '../entry/index.html'),
    chunks: ['stock'],
    filename: 'index.ejs',
    title: 'title',
    inject: true,
    alwaysWriteToDisk: true
}),

开发环境没什么问题,最终网页上展示的是这样

<script>
    // 输出全局变量
    window._global = JSON.parse('{"env":"dev","userInfo":"1111","_csrf":"Fp8HVwGk-L61TuUxNhUxjeONwQz42Ol_YJCQ"}');
</script>

但是生产环境就不对了,变成了什么样呢

<script>window._global=JSON.parse("{"env":"dev","userInfo":"1111","_csrf":"9VM53FgI-ONdFk7LxPlV55QJPTtj-GstiUEk"}")</script>

可以看到单引号变成了双引号

查来查去发现,我们在导入html的时候,html-loader在生产环境是默认开启的minimize,因此单引号变成了双引号,所以这里加上minimize:false就可以啦

回复

This is just a placeholder img.