UNPKG

1.59 kBJavaScriptView Raw
1const pathConfig = require('config').get('path')
2const projectConfig = require('config').get('project')
3const path = require('path')
4const glob = require('glob')
5const fs = require('fs')
6const fse = require('fs-extra')
7const Mustache = require('mustache')
8
9const {
10 pathConfig: { template: tempatePath }
11} = require('./config.js')
12
13function createPage (folder) {
14 if (typeof folder !== 'string') {
15 return console.warn(`[create-page]: ${folder} must be string`)
16 }
17
18 if (fs.existsSync(path.resolve(pathConfig.pages, folder))) {
19 return console.warn(`[create-page]: ${folder} is exists`)
20 }
21
22 try {
23 glob
24 .sync(tempatePath + '/page/**')
25 .filter(v => {
26 let stat = fs.statSync(v)
27 return !stat.isDirectory()
28 })
29 .forEach(v => {
30 let filepath = v.slice((tempatePath + '/page').length)
31 let targetfile = path.join(
32 pathConfig.pages,
33 `./${folder}`,
34 `./${filepath}`
35 )
36 if (filepath === '/config.js') {
37 let config = fse.readFileSync(v, 'utf-8')
38 let content = Mustache.render(config, {
39 project: projectConfig.name,
40 folder,
41 html: projectConfig.html
42 })
43 fse.outputFile(targetfile, content, 'utf-8')
44 } else {
45 fse.ensureFileSync(targetfile)
46 fse.copyFileSync(v, targetfile)
47 }
48 })
49 console.log(`创建完成:「${folder}」,请愉快的 CODING 吧`)
50 } catch (e) {
51 console.error(`创建异常 ${folder}:`)
52 console.error(e)
53 }
54}
55
56module.exports = createPage