怎么让 html-webpack-plugin 不执行模板的 ejs 语句, 而是保持原样?

如 我模板文件中有一句 ejs

<body>
  <% if (user) { %>
    <h2><%= user.name %></h2>
  <% } %>
</body>

webpack.config.js

new HtmlWebpackPlugin({
  filename: '../views/index.html',
  template: './src/templates/index.html'
})

直接执行的话就会报错 ReferenceError: user is not defined

但是我想 html-webpack-plugin 不执行 template 中的 ejs 语句而是保持原样输出。

那么怎么可以保持原样输出?

阅读 5.6k
2 个回答
<% if (user) { %>
    <h2><%= '\<%= user.name%\>' %></h2>
<% } %>

哈哈哈,完美解决。
我已也是遇到这个问题,查了好久。
最后找到答案在这
https://www.lodashjs.com/docs...

请问是想要取消html-webpack-plugin 自带的ejs模板功能?
可以尝试使用html-loader
demo: {test:/.html/, loader:'html-loader'} //当然,别的模块加载器也可以
然后插件模板使用.html做后缀
new HtmlWebpackPlugin({ template: 'xxx.html', filename: 'xxx.html'})
这样你的.html 就会交给html-loader 处理,而不是使用默认的ejs 处理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题