UNPKG

1.83 kBJavaScriptView Raw
1/**
2 * @file start commander, entry file
3 * @author zhangpeng53
4 */
5
6const wpconfig = require('../webpack.config');
7const webpack = require('webpack');
8const walkmd = require('./walkmd');
9const sh = require('child_process').execSync;
10const path = require('path');
11
12const node_modules = path.resolve(__dirname, '../node_modules');
13const wpconfigPath = path.resolve(__dirname, '../webpack.config.js');
14
15const parseWPConfig = (config, isProduction) => {
16 let res = wpconfig(isProduction);
17 if (config.setWebpackConfig) {
18 res = config.setWebpackConfig(res);
19 }
20 return res;
21};
22
23const before = (config) => {
24
25 // 如果是默认主题则使用theme_default
26 if (config.theme == 'default' || !config.theme) {
27 config.theme = path.resolve(__dirname, '../theme_default/');
28 } else {
29 config.theme = path.resolve(process.pwd(), config.theme);
30 }
31};
32
33exports.build = config => {
34 before(config);
35
36 walkmd(config, () => {
37 const site = path.resolve(process.cwd(), 'site');
38 sh(`rm -rf ${site}`);
39
40 const compiler = webpack(parseWPConfig(config, true));
41 compiler.run((err, stats) => {
42 // console.log(stats);
43 });
44 });
45}
46
47exports.dev = config => {
48 before(config);
49 walkmd(config, () => {
50
51 // const server = new webdevServer(compiler, wpconfig.devServer);
52 // server.listen(wpconfig.devServer.port, "localhost", ()=> {
53 // console.log('====start-dev-server====');
54 // });
55
56 // TODO
57 // const db = require("./tmp/__md__");
58
59 return;
60 const server = require('./server');
61 const wpConfig = parseWPConfig(config, false);
62 server(config, wpConfig);
63 // sh(`${node_modules}/.bin/webpack-dev-server --config ${wpconfigPath}`);
64 });
65}
\No newline at end of file