UNPKG

cherry-doc

Version:
151 lines (119 loc) 4.92 kB
/** * @file start commander, entry file * @author zhangpeng53 */ "use strict"; var _this = this; function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } require("babel-core/register"); require('babel-polyfill'); var wpconfig = require('../webpack.config'); var webpack = require('webpack'); var walkmd = require('./walkmd'); var sh = require('child_process').execSync; var path = require('path'); var fs = require('fs'); var parseNav = require('./parseNav'); var babelFiles = require('./babelFiles'); var node_modules = path.resolve(__dirname, '../node_modules'); var wpconfigPath = path.resolve(__dirname, '../webpack.config.js'); var watch = require('node-watch'); function parseWPConfig(config, isProduction) { var res = wpconfig(config, isProduction); if (config.setWebpackConfig) { res = config.setWebpackConfig(res); } return res; } function before(config) { var src = void 0; var dist = path.resolve(__dirname, '../theme'); // 拷贝主题- // 如果是默认主题则使用theme_default if (!config.theme || config.theme == 'default') { src = path.resolve(__dirname, '../theme_default'); } else { src = path.resolve(process.cwd(), config.theme); } sh("rm -rf " + dist); sh("cp -R " + src + " " + dist); config.theme = dist; //拷贝静态资源 var www = path.resolve(__dirname, '../www'); sh("rm -rf " + www); sh("mv " + path.join(dist, './static') + " " + www); // 处理导航数据 // parseNav(config); }; exports.dev = function () { var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(config, option) { var server, wpConfig; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: before(config); if (option.watch) { watch(path.resolve(process.cwd(), config.root), { recursive: true }, function (evt, name) { console.log(evt, name); walkmd(config); parseNav(config); }); } _context.next = 4; return babelFiles(config.theme, config.theme); case 4: _context.next = 6; return walkmd(config); case 6: parseNav(config); server = require('./server'); wpConfig = parseWPConfig(config, false); server(config, wpConfig); case 10: case "end": return _context.stop(); } } }, _callee, _this); })); return function (_x, _x2) { return _ref.apply(this, arguments); }; }(); exports.build = function () { var _ref2 = _asyncToGenerator(regeneratorRuntime.mark(function _callee2(config) { var src, out, compiler; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: before(config); _context2.next = 3; return babelFiles(config.theme, config.theme); case 3: _context2.next = 5; return walkmd(config); case 5: parseNav(config); src = path.resolve(__dirname, '../www'); out = path.resolve(process.cwd(), config.out || './site'); sh("rm -rf " + out); compiler = webpack(parseWPConfig(config, true)); compiler.run(function (err, stats) { // console.log(stats); if (!err) { sh("cp -R " + src + " " + out); } }); case 11: case "end": return _context2.stop(); } } }, _callee2, _this); })); return function (_x3) { return _ref2.apply(this, arguments); }; }();