UNPKG

3.93 kBJavaScriptView Raw
1/**
2 * @file start commander, entry file
3 * @author zhangpeng53
4 */
5
6"use strict";
7
8var _this = this;
9
10function _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"); }); }; }
11
12require("babel-core/register");
13require('babel-polyfill');
14
15var wpconfig = require('../webpack.config');
16var webpack = require('webpack');
17var walkmd = require('./walkmd');
18var sh = require('child_process').execSync;
19var path = require('path');
20var fs = require('fs');
21var parseNav = require('./parseNav');
22var babelFiles = require('./babelFiles');
23
24var node_modules = path.resolve(__dirname, '../node_modules');
25var wpconfigPath = path.resolve(__dirname, '../webpack.config.js');
26
27function parseWPConfig(config, isProduction) {
28 var res = wpconfig(isProduction);
29 if (config.setWebpackConfig) {
30 res = config.setWebpackConfig(res);
31 }
32 return res;
33}
34
35function before(config) {
36
37 var src = void 0;
38 var dist = path.resolve(__dirname, '../theme');
39
40 // 拷贝主题
41 // 如果是默认主题则使用theme_default
42 if (!config.theme || config.theme == 'default') {
43 src = path.resolve(__dirname, '../theme_default');
44 } else {
45 src = path.resolve(process.cwd(), config.theme);
46 }
47 sh("rm -rf " + dist);
48 sh("cp -R " + src + " " + dist);
49 config.theme = dist;
50
51 //拷贝静态资源
52 var www = path.resolve(__dirname, '../www');
53 sh("rm -rf " + www);
54 sh("mv " + path.join(dist, './static') + " " + www);
55
56 //创建临时文件夹
57 var tmp = config.theme + '/tmp';
58 if (fs.existsSync(tmp)) sh("rm -rf " + tmp);
59 fs.mkdirSync(tmp);
60
61 // 处理导航数据
62 parseNav(config);
63};
64
65exports.dev = function () {
66 var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(config) {
67 var server, wpConfig;
68 return regeneratorRuntime.wrap(function _callee$(_context) {
69 while (1) {
70 switch (_context.prev = _context.next) {
71 case 0:
72 before(config);
73 _context.next = 3;
74 return babelFiles(config.theme, config.theme);
75
76 case 3:
77 _context.next = 5;
78 return walkmd(config);
79
80 case 5:
81 server = require('./server');
82 wpConfig = parseWPConfig(config, false);
83
84 server(config, wpConfig);
85
86 case 8:
87 case "end":
88 return _context.stop();
89 }
90 }
91 }, _callee, _this);
92 }));
93
94 return function (_x) {
95 return _ref.apply(this, arguments);
96 };
97}();
98
99exports.build = function (config) {
100 before(config);
101
102 walkmd(config, function () {
103 var site = path.resolve(process.cwd(), 'site');
104 sh("rm -rf " + site);
105
106 var compiler = webpack(parseWPConfig(config, true));
107 compiler.run(function (err, stats) {
108 // console.log(stats);
109 });
110 });
111};
112;
113
114var _temp = function () {
115 if (typeof __REACT_HOT_LOADER__ === 'undefined') {
116 return;
117 }
118
119 __REACT_HOT_LOADER__.register(sh, "sh", "src/cherry.js");
120
121 __REACT_HOT_LOADER__.register(node_modules, "node_modules", "src/cherry.js");
122
123 __REACT_HOT_LOADER__.register(wpconfigPath, "wpconfigPath", "src/cherry.js");
124
125 __REACT_HOT_LOADER__.register(parseWPConfig, "parseWPConfig", "src/cherry.js");
126
127 __REACT_HOT_LOADER__.register(before, "before", "src/cherry.js");
128}();
129
130;
\No newline at end of file