1 | const webpack = require('webpack');
|
2 | const path = require('path');
|
3 | const fs = require('fs');
|
4 | let utils = light.util;
|
5 | let shell = utils.require('shelljs');
|
6 |
|
7 | exports.build = function () {
|
8 |
|
9 | return Promise.all([
|
10 |
|
11 | new Promise(function (resolve) {
|
12 | if(require("./lib/utils").hasPlugin("jsnative") && (!light.options.onlyFor || light.options.onlyFor === 'jsn')){
|
13 | let config_native = require("./build.native").build();
|
14 | return webpack(config_native, function () {
|
15 | resolve();
|
16 | })
|
17 | }else{
|
18 | resolve()
|
19 | }
|
20 | }),
|
21 |
|
22 | new Promise(function (resolve) {
|
23 | if(require("./lib/utils").hasPlugin("miniapp") && (!light.options.onlyFor || light.options.onlyFor === 'miniapp')){
|
24 | let config_native = require("./build.miniapp").build();
|
25 |
|
26 | global.middleware = global.middleware || [];
|
27 | let clinetCheckMap = {};
|
28 | global.middleware.push(function(req,res,next){
|
29 |
|
30 | if(req.path === "/check_reload_me"){
|
31 | if(!clinetCheckMap[req.query.id]){
|
32 | clinetCheckMap[req.query.id] = false;
|
33 | }
|
34 | res.send({
|
35 | reload:clinetCheckMap[req.query.id]
|
36 | })
|
37 | clinetCheckMap[req.query.id] = false;
|
38 | }else{
|
39 | next()
|
40 | }
|
41 | });
|
42 | return webpack(config_native, function () {
|
43 | Object.keys(clinetCheckMap).forEach(client=>{clinetCheckMap[client]=true});
|
44 | resolve();
|
45 | })
|
46 | }else{
|
47 | resolve()
|
48 | }
|
49 | }),
|
50 |
|
51 | new Promise(function (resolve) {
|
52 |
|
53 | if (light.options.onlyFor && light.options.onlyFor !== 'h5') {
|
54 | return resolve()
|
55 | }
|
56 |
|
57 | let config_web = require("./build.web").build();
|
58 | if (process.env.NODE_ENV === "dev") {
|
59 | const compiler = webpack(config_web);
|
60 |
|
61 | global.middleware = global.middleware || [];
|
62 |
|
63 | const devModule = require("webpack-dev-middleware")(compiler, {
|
64 | noInfo: true, log: false
|
65 | });
|
66 | global.middleware.push(devModule);
|
67 |
|
68 | devModule.waitUntilValid(() => {
|
69 | resolve()
|
70 | });
|
71 |
|
72 | global.middleware.push(require("webpack-hot-middleware")(compiler, {
|
73 | noInfo: true, log: false
|
74 | }))
|
75 |
|
76 |
|
77 |
|
78 | } else {
|
79 | webpack(config_web, function () {
|
80 | resolve();
|
81 | });
|
82 | }
|
83 | })
|
84 | ])
|
85 |
|
86 | };
|