UNPKG

mj-script

Version:
59 lines (57 loc) 1.89 kB
const fs = require('fs'); const path = require('path'); const { copyFile, writeFile, mkdir } = require('../../tools/files'); const { SyncHook, SyncBailHook, SyncWaterfallHook, SyncLoopHook, AsyncParallelHook, AsyncParallelBailHook, AsyncSeriesHook, AsyncSeriesBailHook, AsyncSeriesWaterfallHook } = require('tapable'); class Generator { constructor() { this.hooks = { startGenerator: new SyncHook('startGenerator'), endGenerator: new SyncHook('endGenerator'), afterCreatePlugin: new SyncHook('afterCreatePlugin'), beforePackageJson: new SyncHook('beforePackageJson'), afterPackageJson: new AsyncSeriesWaterfallHook('afterPackageJson'), afterRootConfig: new SyncHook('afterRootConfig'), beforeBabelConfig: new SyncHook('beforeBabelConfig'), afterBabelConfig: new AsyncSeriesWaterfallHook('afterBabelConfig'), beforeDir: new SyncHook('beforeDir'), afterDir: new AsyncSeriesWaterfallHook('afterDir'), } this.defaultPackageJson = require('./defaultPackage.json'); // key: 文件名 , value: 文件内容 this.rootPath = ''; this.createConfig = false; } createPackageJson = (resolve) => { writeFile(`${this.rootPath}/package.json`, JSON.stringify(this.defaultPackageJson, null, '\t'), err => { if (err) throw err; }).then(() => { resolve(); }) } createRootConfig = (resolve) => { if (this.createConfig) { mkdir(`${this.rootPath}/config`).then(() => { resolve(); }) } else { resolve(); } } createBabelConfig = (resolve) => { resolve(); } createDir = (resolve) => { resolve(); } } module.exports = Generator;