UNPKG

2.08 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');
11const fs = require('fs');
12
13const node_modules = path.resolve(__dirname, '../node_modules');
14const wpconfigPath = path.resolve(__dirname, '../webpack.config.js');
15
16
17function copyFile(src, dist) {
18 fs.writeFileSync(dist, fs.readFileSync(src));
19}
20
21const parseWPConfig = (config, isProduction) => {
22 let res = wpconfig(isProduction);
23 if (config.setWebpackConfig) {
24 res = config.setWebpackConfig(res);
25 }
26 return res;
27};
28
29const before = (config) => {
30
31 let src = path.resolve(process.cwd(), config.theme);
32 let dist = path.resolve(__dirname, '../theme');
33
34 // 如果是默认主题则使用theme_default
35 if (config.theme == 'default' || !config.theme) {
36 config.theme = path.resolve(__dirname, '../theme_default/');
37 } else {
38 config.theme = path.resolve(process.cwd(), config.theme);
39 }
40 sh(`cp -R ${src} ${dist}`);
41};
42
43exports.build = config => {
44 before(config);
45
46 walkmd(config, () => {
47 const site = path.resolve(process.cwd(), 'site');
48 sh(`rm -rf ${site}`);
49
50 const compiler = webpack(parseWPConfig(config, true));
51 compiler.run((err, stats) => {
52 // console.log(stats);
53 });
54 });
55}
56
57exports.dev = config => {
58 before(config);
59
60 walkmd(config, () => {
61
62 // const server = new webdevServer(compiler, wpconfig.devServer);
63 // server.listen(wpconfig.devServer.port, "localhost", ()=> {
64 // console.log('====start-dev-server====');
65 // });
66
67 // TODO
68 // const db = require("./tmp/__md__");
69
70 return;
71 const server = require('./server');
72 const wpConfig = parseWPConfig(config, false);
73 server(config, wpConfig);
74 // sh(`${node_modules}/.bin/webpack-dev-server --config ${wpconfigPath}`);
75 });
76}
\No newline at end of file