const ejs = require('ejs')const path = require('path')const html = '<h2><%= user.name %></h2>'const options = {}const data = {user: {name: 'haha'}}const data2 = {user: {name: 'hahaya'}}//渲染html比较消耗性能//compile 适合多次使用let template = ejs.compile(html, options)console.log('template')console.log(template(data))console.log(template(data2))//render 适合一次调研console.log('render')console.log(ejs.render(html, data, options))//renderFile 渲染文件console.log('renderFile')//返回一个promise对象console.log(ejs.renderFile(path.resolve(__dirname, './head.html'), data, options))//第四个参数 回调函数ejs.renderFile(path.resolve(__dirname, './head.html'), data, options, function (err, str) {console.log(str)})
<h2><%= user.name %></h2>
ejs 标签的含义
- <%:script 标签,用于流程控制,不会输出在页面上
- <%_: 删除其前面的空格符
- <%=: 输出数据到模板(输出是转义 HTML 字符串)
- <%-: 输出非转义的数据到模板
- <%#: 注释标签,不执行,不输出内容
- <%%: 输出字符串 <%
- %>: 一般结束标签
- -%>: 删除后序的换行符
-
glob
glob 是用来匹配文件路径的,匹配规则如下。
- 匹配任意 0 或 多个 任意字符
- ? 匹配任意 一个 字符
- […] 若字符在中括号中,则匹配。若以 ! 或 ^ 开头,若字符不在中括号中,则匹配
- !(pattern|pattern|pattern) 不满足括号中的所有模式则匹配
- ?(pattern|pattern|pattern) 满足 0 或 1 括号中的模式则匹配
- +(pattern|pattern|pattern) 满足 1 或 更多括号中的模式则匹配
- *(a|b|c) 满足 0 或 更多括号中的模式则匹配
- @(pattern|pat*|pat?erN) 满足 1 个括号中的模式则匹配
- ** 跨路径匹配任意字符 ```html const glob = require(‘glob’)
glob(‘/*.js’, { ignore: [‘node_modules/‘] }, (err, file) => { console.log(‘err’, err) console.log(‘file’, file) })
```

