UNPKG

1.32 kBJavaScriptView Raw
1const ejs = require('ejs')
2
3import readClientFile from '../utils/read-client-file'
4import getClientFilePath from '../utils/get-client-file-path'
5
6/**
7 * 渲染 ejs 模板
8 * @param {String} template ejs 模板内容
9 * @param {Object} inject 注入对象
10 * @param {Object} [filemap] 文件对照表
11 * @returns {String}
12 */
13export default (template = DEFAULT_TEMPLATE, inject = {}) => {
14 try {
15 for (let key in inject) {
16 if (typeof inject[key] === 'function')
17 inject[key] = inject[key](template)
18 }
19 } catch (e) {
20 console.log(e)
21 }
22
23 // console.log(template)
24
25 return ejs.render(
26 template, {
27 inject,
28 content: readClientFile,
29 pathname: getClientFilePath,
30 }, {}
31 )
32}
33
34const DEFAULT_TEMPLATE = `
35 <!DOCTYPE html>
36 <html lang="en">
37 <head>
38 <meta charset="UTF-8">
39 <script>//inject_meta</script>
40 <title><script>//inject_title</script></title>
41 <script>//inject_component_styles</script>
42 </head>
43 <body>
44 <div id="root">
45 <div><script>//inject_html</script></div>
46 </div>
47 <script>//inject_redux_state</script>
48 <script>//inject_js</script>
49 </body>
50 </html>
51`