html-webapck-plugin 设置ejs 中<%= 变量 %>的默认值

为什么需要

<!--  dom.ejs  -->
<div><%= parameter %></div>

问题:当使用时不传入 parmeter参数的时候会报错
ReferenceError: parameter is not defined


设置默认值方法1:通过 <% %> 控制流标签的if else设置。
注意:由于使用的是ejs-loader加载器

  • 只能使用var 不支持 const let
  • 不支持 && 短路操作 和 ()?: 三元运算
<!--  改造  dom.ejs  -->
<% 
if(parmeter){}else{var parmeter = '这是一个div'}
%>
<div><%= parameter %></div>

方法2:通过 js中间操作
创建对应js文件
优点:

  • js文件 语法上不会受到ejs-loader 的限制扩展性更好
// script.js
import dom from './dom.ejs'; // 引入对应的ejs文件

// 默认参数对象
const domData = {
    parmeter: '这是一个div'
},
// 返回 接受参数对象 并输出 模板的方法
const moduleExport = (parObj)=>{
    return dom(Object.assgin(dataData,parObj))// 通过覆盖同名属性的方法设置默认值
};
export default moduleExport; 

使用时引用js文件即可。有点类似柯里化的思路。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容