提交 a54f882b28874e0ca1c4b1ac4334a49529b976b5

作者 fanwh
1 个父辈 a2c60ba8

no message

... ... @@ -3,10 +3,16 @@
3 3 /**
4 4 * Module dependencies.
5 5 */
  6 +var path = require('path');
6 7 var commander = require('commander');
7 8 var inquirer = require('inquirer');
  9 +var chalk = require('chalk');
  10 +var shell = require("shelljs");
  11 +var parseArgs = require('minimist');
  12 +const fse = require('fs-extra');
8 13 var os = require('os');
9 14 const utils = require('./utils');
  15 +
10 16 // import config from '../workai.tools.config';
11 17
12 18 var program = new commander.Command();
... ... @@ -31,8 +37,8 @@ var program = new commander.Command();
31 37 // console.log(answers); // 返回的结果
32 38 // });
33 39
34   -program
35   - .version('0.0.1', '-v, --version')
  40 +// program
  41 +// .version('0.0.1', '-v, --version')
36 42 // .option('-p, --peppers', 'Add peppers')
37 43 // .option('-P, --pineapple', 'Add pineapple')
38 44 // .option('-b, --bbq-sauce', 'Add bbq sauce')
... ... @@ -51,14 +57,122 @@ program
51 57 // })
52 58 // .parse(process.argv);
53 59 program
54   - .version('0.0.3', '-b, --bersion')
55   - .parse(process.argv);
  60 + .version('0.0.1')
  61 + .usage('例子')
  62 + .description('this is a lizi of commander');
  63 +
56 64 // console.log('you ordered a pizza with:');
57 65 // if (program.peppers) console.log(' - peppers');
58 66 // if (program.pineapple) console.log(' - pineapple');
59 67 // if (program.bbqSauce) console.log(' - bbq');
60 68 // console.log(' - %s cheese', program.cheese);
  69 +program
  70 + .command('hello [st]')
  71 + .action(function (st, value) {
  72 + hello(st, value);
  73 + })
  74 +
  75 +function hello(val, o) {
  76 + console.log(val);
  77 + console.log(1);
  78 + console.log(o)
  79 +}
  80 +
  81 +
  82 +
  83 +
  84 +
  85 +/*构建生命周期
  86 +* init 初始化项目
  87 +*/
  88 +program
  89 + .command('init [templateName]')
  90 + .alias('i')
  91 + .description('初始化项目')
  92 + .action(option => {
  93 + // // 该对象用于存储所有与用户交互的数据
  94 + // let config = {
  95 + // // 假设我们需要用户自定义项目名称
  96 + // projectName: null
  97 + // };
  98 + // // 使用chalk打印美化的版本信息
  99 + // console.log(chalk.default.bold('hello v1.0.0'));
  100 +
  101 + // // 用于存储所有的交互步骤,例如让用户输入项目名称就是其中一个步骤
  102 + // let promps = [];
  103 + // if (config.projectName === null) {
  104 + // promps.push({
  105 + // type: 'input',
  106 + // name: 'projectName',
  107 + // message: '请输入项目名称',
  108 + // validate: input => {
  109 + // if (!input) {
  110 + // return '项目名称不能为空';
  111 + // }
  112 + // // 更新对象中属性的数据
  113 + // config.projectName = input;
  114 + // return true;
  115 + // }
  116 + // });
  117 + // }
  118 +
  119 + // // 至此,与用户的所有交互均已完成,answers是收集到的用户所填的所有数据
  120 + // // 同时,这也是你开始操作的地方,这个cli工具的核心代码应该从这个地方开始
  121 + // inquirer.prompt(promps).then(async (answers) => {
  122 + // // do something here
  123 + // console.log("::::::", answers);
  124 + // });
  125 + if (option == 'hro') {
  126 + var hro_template_path = path.resolve(__dirname, '..', 'templates', 'hro_template');
  127 + console.log(hro_template_path);
  128 + fse.copySync(hro_template_path, './hro_template', {
  129 + filter: (src, dest) => {
  130 + console.log(src);
  131 + if (src.indexOf('node_modules') != -1)
  132 + return false;
  133 + else
  134 + return true
  135 + }
  136 + });
  137 + shell.cd('./hro_template');
  138 + shell.exec('yarn install');
  139 + shell.exec('workai start');
  140 + }
  141 + });
  142 +
  143 +
  144 +/*
  145 +*开发模式启动项目
  146 +*/
  147 +program
  148 + .command('start [projectPath]')
  149 + .alias('dev')
  150 + .description('开发模式启动')
  151 + .action(option => {
  152 + _checkEnv().then(flag => {
  153 + console.log("222:::", flag, process.cwd(), path.resolve(__dirname), option);
  154 + if (flag) {
  155 + shell.exec('npx babel-node server/development.js');
  156 + } else {
  157 + console.log("当前所在目录不是项目目录");
  158 + }
  159 + });
  160 + });
  161 +
  162 +function _checkEnv() {
  163 + return utils.getPaths(["configs/webpack.**", "!node_modules"]).then(paths => {
  164 + return paths.length > 0;
  165 + });
  166 +}
  167 +
  168 +program
  169 + .option('-s --save [value]', '保存');
  170 +
  171 +program.parse(process.argv);
61 172 console.log(os.type(), os.platform());
62   -utils.getPaths(["**", "!node_modules"]).then(paths => {
63   - console.log("##", paths);
64   -});
\ No newline at end of file
  173 +// utils.getPaths(["**", "!node_modules"]).then(paths => {
  174 +// // console.log("##", paths);
  175 +// });
  176 +if (program.save) {
  177 + console.log(parseArgs(process.argv.slice(2)));
  178 +}
\ No newline at end of file
... ...
... ... @@ -140,12 +140,44 @@
140 140 "js-tokens": "^4.0.0"
141 141 }
142 142 },
  143 + "@babel/node": {
  144 + "version": "7.4.5",
  145 + "resolved": "https://registry.npm.taobao.org/@babel/node/download/@babel/node-7.4.5.tgz",
  146 + "integrity": "sha1-vOcbtE2QK/3U2gucg5qKkPwIQFY=",
  147 + "dev": true,
  148 + "requires": {
  149 + "@babel/polyfill": "^7.0.0",
  150 + "@babel/register": "^7.0.0",
  151 + "commander": "^2.8.1",
  152 + "lodash": "^4.17.11",
  153 + "node-environment-flags": "^1.0.5",
  154 + "v8flags": "^3.1.1"
  155 + }
  156 + },
143 157 "@babel/parser": {
144 158 "version": "7.4.5",
145 159 "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.4.5.tgz",
146 160 "integrity": "sha1-BK+NXVorBEoqG/+sweXmZzVE6HI=",
147 161 "dev": true
148 162 },
  163 + "@babel/polyfill": {
  164 + "version": "7.4.4",
  165 + "resolved": "https://registry.npm.taobao.org/@babel/polyfill/download/@babel/polyfill-7.4.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpolyfill%2Fdownload%2F%40babel%2Fpolyfill-7.4.4.tgz",
  166 + "integrity": "sha1-eIAc89vmV4RO6r8xwcrjgoBR6JM=",
  167 + "dev": true,
  168 + "requires": {
  169 + "core-js": "^2.6.5",
  170 + "regenerator-runtime": "^0.13.2"
  171 + },
  172 + "dependencies": {
  173 + "core-js": {
  174 + "version": "2.6.9",
  175 + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.9.tgz?cache=0&sync_timestamp=1560599811627&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.9.tgz",
  176 + "integrity": "sha1-a0shRiDINBUuF5Mjcn/Bl0GwhPI=",
  177 + "dev": true
  178 + }
  179 + }
  180 + },
149 181 "@babel/register": {
150 182 "version": "7.4.4",
151 183 "resolved": "https://registry.npm.taobao.org/@babel/register/download/@babel/register-7.4.4.tgz",
... ... @@ -713,6 +745,15 @@
713 745 }
714 746 }
715 747 },
  748 + "define-properties": {
  749 + "version": "1.1.3",
  750 + "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz",
  751 + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
  752 + "dev": true,
  753 + "requires": {
  754 + "object-keys": "^1.0.12"
  755 + }
  756 + },
716 757 "define-property": {
717 758 "version": "2.0.2",
718 759 "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz",
... ... @@ -763,6 +804,20 @@
763 804 "path-type": "^3.0.0"
764 805 }
765 806 },
  807 + "es-abstract": {
  808 + "version": "1.13.0",
  809 + "resolved": "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz",
  810 + "integrity": "sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=",
  811 + "dev": true,
  812 + "requires": {
  813 + "es-to-primitive": "^1.2.0",
  814 + "function-bind": "^1.1.1",
  815 + "has": "^1.0.3",
  816 + "is-callable": "^1.1.4",
  817 + "is-regex": "^1.0.4",
  818 + "object-keys": "^1.0.12"
  819 + }
  820 + },
766 821 "es-checker": {
767 822 "version": "1.4.1",
768 823 "resolved": "https://registry.npm.taobao.org/es-checker/download/es-checker-1.4.1.tgz",
... ... @@ -815,6 +870,17 @@
815 870 }
816 871 }
817 872 },
  873 + "es-to-primitive": {
  874 + "version": "1.2.0",
  875 + "resolved": "http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz",
  876 + "integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=",
  877 + "dev": true,
  878 + "requires": {
  879 + "is-callable": "^1.1.4",
  880 + "is-date-object": "^1.0.1",
  881 + "is-symbol": "^1.0.2"
  882 + }
  883 + },
818 884 "escape-string-regexp": {
819 885 "version": "1.0.5",
820 886 "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz",
... ... @@ -1581,6 +1647,12 @@
1581 1647 }
1582 1648 }
1583 1649 },
  1650 + "function-bind": {
  1651 + "version": "1.1.1",
  1652 + "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
  1653 + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
  1654 + "dev": true
  1655 + },
1584 1656 "get-value": {
1585 1657 "version": "2.0.6",
1586 1658 "resolved": "http://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz",
... ... @@ -1662,6 +1734,15 @@
1662 1734 "integrity": "sha1-jY/cc5d8sEEEchy1NmbBymTNMos=",
1663 1735 "dev": true
1664 1736 },
  1737 + "has": {
  1738 + "version": "1.0.3",
  1739 + "resolved": "http://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
  1740 + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
  1741 + "dev": true,
  1742 + "requires": {
  1743 + "function-bind": "^1.1.1"
  1744 + }
  1745 + },
1665 1746 "has-ansi": {
1666 1747 "version": "2.0.0",
1667 1748 "resolved": "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz",
... ... @@ -1685,6 +1766,12 @@
1685 1766 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1686 1767 "dev": true
1687 1768 },
  1769 + "has-symbols": {
  1770 + "version": "1.0.0",
  1771 + "resolved": "http://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz",
  1772 + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
  1773 + "dev": true
  1774 + },
1688 1775 "has-value": {
1689 1776 "version": "1.0.0",
1690 1777 "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz",
... ... @@ -1717,6 +1804,15 @@
1717 1804 }
1718 1805 }
1719 1806 },
  1807 + "homedir-polyfill": {
  1808 + "version": "1.0.3",
  1809 + "resolved": "https://registry.npm.taobao.org/homedir-polyfill/download/homedir-polyfill-1.0.3.tgz",
  1810 + "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=",
  1811 + "dev": true,
  1812 + "requires": {
  1813 + "parse-passwd": "^1.0.0"
  1814 + }
  1815 + },
1720 1816 "iconv-lite": {
1721 1817 "version": "0.4.24",
1722 1818 "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz",
... ... @@ -1811,6 +1907,12 @@
1811 1907 "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=",
1812 1908 "dev": true
1813 1909 },
  1910 + "is-callable": {
  1911 + "version": "1.1.4",
  1912 + "resolved": "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz",
  1913 + "integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=",
  1914 + "dev": true
  1915 + },
1814 1916 "is-data-descriptor": {
1815 1917 "version": "0.1.4",
1816 1918 "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz",
... ... @@ -1831,6 +1933,12 @@
1831 1933 }
1832 1934 }
1833 1935 },
  1936 + "is-date-object": {
  1937 + "version": "1.0.1",
  1938 + "resolved": "http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz",
  1939 + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
  1940 + "dev": true
  1941 + },
1834 1942 "is-descriptor": {
1835 1943 "version": "0.1.6",
1836 1944 "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz",
... ... @@ -1918,6 +2026,24 @@
1918 2026 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
1919 2027 "dev": true
1920 2028 },
  2029 + "is-regex": {
  2030 + "version": "1.0.4",
  2031 + "resolved": "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz",
  2032 + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
  2033 + "dev": true,
  2034 + "requires": {
  2035 + "has": "^1.0.1"
  2036 + }
  2037 + },
  2038 + "is-symbol": {
  2039 + "version": "1.0.2",
  2040 + "resolved": "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz",
  2041 + "integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=",
  2042 + "dev": true,
  2043 + "requires": {
  2044 + "has-symbols": "^1.0.0"
  2045 + }
  2046 + },
1921 2047 "is-windows": {
1922 2048 "version": "1.0.2",
1923 2049 "resolved": "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz",
... ... @@ -2136,6 +2262,24 @@
2136 2262 "to-regex": "^3.0.1"
2137 2263 }
2138 2264 },
  2265 + "node-environment-flags": {
  2266 + "version": "1.0.6",
  2267 + "resolved": "https://registry.npm.taobao.org/node-environment-flags/download/node-environment-flags-1.0.6.tgz",
  2268 + "integrity": "sha1-owrBNiH299Z0JgpU3t4EjDmCwIg=",
  2269 + "dev": true,
  2270 + "requires": {
  2271 + "object.getownpropertydescriptors": "^2.0.3",
  2272 + "semver": "^5.7.0"
  2273 + },
  2274 + "dependencies": {
  2275 + "semver": {
  2276 + "version": "5.7.0",
  2277 + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz",
  2278 + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=",
  2279 + "dev": true
  2280 + }
  2281 + }
  2282 + },
2139 2283 "node-modules-regexp": {
2140 2284 "version": "1.0.0",
2141 2285 "resolved": "http://registry.npm.taobao.org/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz",
... ... @@ -2180,6 +2324,12 @@
2180 2324 }
2181 2325 }
2182 2326 },
  2327 + "object-keys": {
  2328 + "version": "1.1.1",
  2329 + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz",
  2330 + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=",
  2331 + "dev": true
  2332 + },
2183 2333 "object-visit": {
2184 2334 "version": "1.0.1",
2185 2335 "resolved": "http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz",
... ... @@ -2189,6 +2339,16 @@
2189 2339 "isobject": "^3.0.0"
2190 2340 }
2191 2341 },
  2342 + "object.getownpropertydescriptors": {
  2343 + "version": "2.0.3",
  2344 + "resolved": "http://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz",
  2345 + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
  2346 + "dev": true,
  2347 + "requires": {
  2348 + "define-properties": "^1.1.2",
  2349 + "es-abstract": "^1.5.1"
  2350 + }
  2351 + },
2192 2352 "object.pick": {
2193 2353 "version": "1.3.0",
2194 2354 "resolved": "http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz",
... ... @@ -2257,6 +2417,12 @@
2257 2417 "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
2258 2418 "dev": true
2259 2419 },
  2420 + "parse-passwd": {
  2421 + "version": "1.0.0",
  2422 + "resolved": "http://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz",
  2423 + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
  2424 + "dev": true
  2425 + },
2260 2426 "pascalcase": {
2261 2427 "version": "0.1.1",
2262 2428 "resolved": "http://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz",
... ... @@ -2378,6 +2544,12 @@
2378 2544 "resolve": "^1.1.6"
2379 2545 }
2380 2546 },
  2547 + "regenerator-runtime": {
  2548 + "version": "0.13.2",
  2549 + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.2.tgz",
  2550 + "integrity": "sha1-MuWcmm+5saSv8JtJMMotRHc0NEc=",
  2551 + "dev": true
  2552 + },
2381 2553 "regex-not": {
2382 2554 "version": "1.0.2",
2383 2555 "resolved": "http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz",
... ... @@ -2952,6 +3124,15 @@
2952 3124 "dev": true,
2953 3125 "optional": true
2954 3126 },
  3127 + "v8flags": {
  3128 + "version": "3.1.3",
  3129 + "resolved": "https://registry.npm.taobao.org/v8flags/download/v8flags-3.1.3.tgz",
  3130 + "integrity": "sha1-/J3CNSHKIMVDP4HMTrmzAzuxBdg=",
  3131 + "dev": true,
  3132 + "requires": {
  3133 + "homedir-polyfill": "^1.0.1"
  3134 + }
  3135 + },
2955 3136 "wrappy": {
2956 3137 "version": "1.0.2",
2957 3138 "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
... ...
... ... @@ -18,10 +18,12 @@
18 18 "devDependencies": {
19 19 "@babel/cli": "^7.4.4",
20 20 "@babel/core": "^7.4.5",
  21 + "@babel/node": "^7.4.5",
21 22 "@babel/register": "^7.4.4",
22 23 "chalk": "^2.4.2",
23 24 "commander": "^2.20.0",
24 25 "es-checker": "^1.4.1",
  26 + "fs-extra": "^8.1.0",
25 27 "git-clone": "^0.1.0",
26 28 "globby": "^9.2.0",
27 29 "inquirer": "^6.4.1",
... ...
1 1 node_modules/
2 2 yarn.lock
3 3 package-lock.json
4   -yarn-error.log
\ No newline at end of file
  4 +yarn-error.log
  5 +temp_build
\ No newline at end of file
... ...
1 1 import path from 'path';
2 2 import webpack from 'webpack';
3 3 import HtmlWebpackPlugin from 'html-webpack-plugin';
  4 +import OpenBrowserPlugin from 'open-browser-webpack-plugin';
4 5
5 6 const rootPath = path.resolve(__dirname, '..');
6 7
... ... @@ -58,7 +59,8 @@ module.exports = {
58 59 "filename": path.resolve(rootPath, 'build', 'index.html'),
59 60 "inject": 'body',
60 61 "template": path.resolve(rootPath, 'src', 'index-template.html')
61   - })
  62 + }),
  63 + new OpenBrowserPlugin({ url: 'http://localhost:3000' })
62 64 ],
63 65 resolve: {
64 66 alias: {
... ...
  1 +import path from 'path';
  2 +import webpack from 'webpack';
  3 +import HtmlWebpackPlugin from 'html-webpack-plugin';
  4 +
  5 +const rootPath = path.resolve(__dirname, '..');
  6 +
  7 +const vendor = [
  8 + "classnames",
  9 + "connected-react-router",
  10 + "es6-promise",
  11 + "history",
  12 + "isomorphic-fetch",
  13 + "localforage",
  14 + "plupload",
  15 + "rc-animate",
  16 + "react",
  17 + "react-dom",
  18 + "react-loadable",
  19 + "react-redux",
  20 + "react-router",
  21 + "react-router-dom",
  22 + "reduce-reducers",
  23 + "redux",
  24 + "redux-form",
  25 + "redux-saga"
  26 +];
  27 +
  28 +
  29 +module.exports = {
  30 + entry: {
  31 + vendor: vendor
  32 + },
  33 + output: {
  34 + path: path.resolve(rootPath, 'temp_build'),
  35 + filename: '[name].[chunkhash].js',
  36 + library: '[name]_[chunkhash]',
  37 + publicPath: '/'
  38 + },
  39 + cache: true,
  40 + mode: 'production',
  41 + stats: {
  42 + assets: true,
  43 + assetsSort: 'chunks',
  44 + children: false,
  45 + colors: true,
  46 + reasons: false,
  47 + hash: false,
  48 + env: true,
  49 + version: true,
  50 + timings: true,
  51 + chunks: false,
  52 + chunkGroups: false,
  53 + chunkModules: false,
  54 + chunkOrigins: false,
  55 + modules: false,
  56 + cached: false,
  57 + moduleTrace: false,
  58 + performance: true,
  59 + warnings: false,
  60 + cachedAssets: false
  61 + },
  62 + plugins: [
  63 + new webpack.DllPlugin({
  64 + path: path.resolve(rootPath, 'temp_build', '[name].manifest.json'),
  65 + name: '[name]_[chunkhash]'
  66 + }),
  67 + new HtmlWebpackPlugin({
  68 + "title": 'Custom template',
  69 + "csrfToken": '<%=htmlWebpackPlugin.options.csrfToken%>',
  70 + "filename": path.resolve(rootPath, 'temp_build', 'index-production.html'),
  71 + "inject": 'head',
  72 + "template": path.resolve(rootPath, 'src', 'index-template.html')
  73 + })
  74 + ]
  75 +};
\ No newline at end of file
... ...
  1 +import path from 'path';
  2 +import webpack from 'webpack';
  3 +import HtmlWebpackPlugin from 'html-webpack-plugin';
  4 +import UglifyJsPlugin from 'uglifyjs-webpack-plugin';
  5 +import MiniCssExtractPlugin from 'mini-css-extract-plugin';
  6 +import OptimizeCSSAssetsPlugin from 'optimize-css-assets-webpack-plugin';
  7 +import HappyPack from 'happypack';
  8 +import os from 'os';
  9 +
  10 +const rootPath = path.resolve(__dirname, '..');
  11 +
  12 +const happyThreadPool = HappyPack.ThreadPool({ size: os.cpus().length });
  13 +
  14 +module.exports = {
  15 + entry: {
  16 + app: [path.resolve(rootPath, 'src', 'index.js')]
  17 + },
  18 + output: {
  19 + filename: '[name].[chunkhash].bundle.js',
  20 + path: path.resolve(rootPath, 'build'),
  21 + publicPath: '/'
  22 + },
  23 + module: {
  24 + rules: [{
  25 + test: /\.(js|jsx?)$/,
  26 + use: 'happypack/loader?id=jsx',
  27 + exclude: [
  28 + path.resolve(rootPath, 'node_modules')
  29 + ]
  30 + }, {
  31 + test: /\.less$/,
  32 + use: 'happypack/loader?id=style'
  33 + }, {
  34 + test: /\.css$/,
  35 + use: [
  36 + MiniCssExtractPlugin.loader,
  37 + {
  38 + loader: "css-loader"
  39 + }]
  40 + }]
  41 + },
  42 + devtool: false,//'source-map',//
  43 + cache: true,
  44 + mode: 'production',
  45 + stats: {
  46 + assets: true,
  47 + assetsSort: 'chunks',
  48 + children: false,
  49 + colors: true,
  50 + reasons: false,
  51 + hash: false,
  52 + env: true,
  53 + version: true,
  54 + timings: true,
  55 + chunks: false,
  56 + chunkGroups: false,
  57 + chunkModules: false,
  58 + chunkOrigins: false,
  59 + modules: false,
  60 + cached: false,
  61 + moduleTrace: false,
  62 + performance: true,
  63 + warnings: false,
  64 + cachedAssets: false
  65 + },
  66 + resolve: {
  67 + alias: {
  68 + src: path.resolve(rootPath, 'src')
  69 + }
  70 + },
  71 + optimization: {
  72 + minimize: false,
  73 + minimizer: [
  74 + new UglifyJsPlugin({
  75 + parallel: true,
  76 + uglifyOptions: {
  77 + compress: {
  78 + warnings: true,
  79 + drop_debugger: true,
  80 + drop_console: true
  81 + }
  82 + }
  83 + }),
  84 + new OptimizeCSSAssetsPlugin({})
  85 + ]
  86 + },
  87 + plugins: [
  88 + new webpack.DefinePlugin({
  89 + "window.evn": JSON.stringify('production')
  90 + }),
  91 + new HappyPack({
  92 + id: 'jsx',
  93 + threadPool: happyThreadPool,
  94 + loaders: [{
  95 + loader: "babel-loader",
  96 + options: {
  97 + presets: ["env", "react", "stage-0"],
  98 + plugins: [["import", { "libraryName": "antd" }, "ant"]]
  99 + }
  100 + }]
  101 + }),
  102 + new HappyPack({
  103 + id: 'style',
  104 + threadPool: happyThreadPool,
  105 + loaders: [{
  106 + loader: "style-loader"
  107 + }, {
  108 + loader: "css-loader"
  109 + }, {
  110 + loader: "less-loader",
  111 + options: {
  112 + paths: [
  113 + path.resolve(rootPath, "node_modules")
  114 + ]
  115 + }
  116 + }]
  117 + }),
  118 + new HtmlWebpackPlugin({
  119 + title: '小爱科技',
  120 + "filename": path.resolve(rootPath, 'build', 'index.html'),
  121 + "inject": 'body',
  122 + "template": path.resolve(rootPath, 'temp_build', 'index-production.html')
  123 + }),
  124 + new webpack.HashedModuleIdsPlugin({
  125 + hashFunction: 'sha256',
  126 + hashDigest: 'hex',
  127 + hashDigestLength: 20
  128 + }),
  129 + new MiniCssExtractPlugin({
  130 + filename: '[name].[contenthash].css'
  131 + }),
  132 + new webpack.DllReferencePlugin({
  133 + context: '.',
  134 + manifest: require('../temp_build/vendor.manifest.json')
  135 + })
  136 + ]
  137 +};
\ No newline at end of file
... ...
... ... @@ -36,6 +36,7 @@
36 36 "html-webpack-plugin": "^3.2.0",
37 37 "less": "^3.9.0",
38 38 "less-loader": "^5.0.0",
  39 + "open-browser-webpack-plugin": "^0.0.5",
39 40 "style-loader": "^0.23.1",
40 41 "webpack": "^4.35.2",
41 42 "webpack-dev-middleware": "^3.7.0",
... ...
... ... @@ -89,11 +89,29 @@
89 89 esutils "^2.0.2"
90 90 js-tokens "^4.0.0"
91 91
  92 +"@babel/node@^7.4.5":
  93 + version "7.4.5"
  94 + resolved "https://registry.npm.taobao.org/@babel/node/download/@babel/node-7.4.5.tgz#bce71bb44d902bfdd4da0b9c839a8a90fc084056"
  95 + dependencies:
  96 + "@babel/polyfill" "^7.0.0"
  97 + "@babel/register" "^7.0.0"
  98 + commander "^2.8.1"
  99 + lodash "^4.17.11"
  100 + node-environment-flags "^1.0.5"
  101 + v8flags "^3.1.1"
  102 +
92 103 "@babel/parser@^7.4.4", "@babel/parser@^7.4.5":
93 104 version "7.4.5"
94 105 resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872"
95 106
96   -"@babel/register@^7.4.4":
  107 +"@babel/polyfill@^7.0.0":
  108 + version "7.4.4"
  109 + resolved "https://registry.npm.taobao.org/@babel/polyfill/download/@babel/polyfill-7.4.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpolyfill%2Fdownload%2F%40babel%2Fpolyfill-7.4.4.tgz#78801cf3dbe657844eeabf31c1cae3828051e893"
  110 + dependencies:
  111 + core-js "^2.6.5"
  112 + regenerator-runtime "^0.13.2"
  113 +
  114 +"@babel/register@^7.0.0", "@babel/register@^7.4.4":
97 115 version "7.4.4"
98 116 resolved "https://registry.npm.taobao.org/@babel/register/download/@babel/register-7.4.4.tgz#370a68ba36f08f015a8b35d4864176c6b65d7a23"
99 117 dependencies:
... ... @@ -445,6 +463,10 @@ copy-descriptor@^0.1.0:
445 463 version "0.1.1"
446 464 resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
447 465
  466 +core-js@^2.6.5:
  467 + version "2.6.9"
  468 + resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.9.tgz?cache=0&sync_timestamp=1560599811627&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2"
  469 +
448 470 core-js@^3.0.0:
449 471 version "3.1.4"
450 472 resolved "https://registry.npm.taobao.org/core-js/download/core-js-3.1.4.tgz?cache=0&sync_timestamp=1560599811627&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07"
... ... @@ -489,6 +511,12 @@ deep-extend@^0.6.0:
489 511 version "0.6.0"
490 512 resolved "https://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
491 513
  514 +define-properties@^1.1.2:
  515 + version "1.1.3"
  516 + resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
  517 + dependencies:
  518 + object-keys "^1.0.12"
  519 +
492 520 define-property@^0.2.5:
493 521 version "0.2.5"
494 522 resolved "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
... ... @@ -522,6 +550,17 @@ dir-glob@^2.2.2:
522 550 dependencies:
523 551 path-type "^3.0.0"
524 552
  553 +es-abstract@^1.5.1:
  554 + version "1.13.0"
  555 + resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
  556 + dependencies:
  557 + es-to-primitive "^1.2.0"
  558 + function-bind "^1.1.1"
  559 + has "^1.0.3"
  560 + is-callable "^1.1.4"
  561 + is-regex "^1.0.4"
  562 + object-keys "^1.0.12"
  563 +
525 564 es-checker@^1.4.1:
526 565 version "1.4.1"
527 566 resolved "https://registry.npm.taobao.org/es-checker/download/es-checker-1.4.1.tgz#b67c338c0023ac914d9ad5ec0a23ace8e91063f7"
... ... @@ -529,6 +568,14 @@ es-checker@^1.4.1:
529 568 chai "^3.0.0"
530 569 chalk "^1.0.0"
531 570
  571 +es-to-primitive@^1.2.0:
  572 + version "1.2.0"
  573 + resolved "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
  574 + dependencies:
  575 + is-callable "^1.1.4"
  576 + is-date-object "^1.0.1"
  577 + is-symbol "^1.0.2"
  578 +
532 579 escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
533 580 version "1.0.5"
534 581 resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
... ... @@ -633,6 +680,14 @@ fragment-cache@^0.2.1:
633 680 dependencies:
634 681 map-cache "^0.2.2"
635 682
  683 +fs-extra@^8.1.0:
  684 + version "8.1.0"
  685 + resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
  686 + dependencies:
  687 + graceful-fs "^4.2.0"
  688 + jsonfile "^4.0.0"
  689 + universalify "^0.1.0"
  690 +
636 691 fs-minipass@^1.2.5:
637 692 version "1.2.6"
638 693 resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07"
... ... @@ -654,6 +709,10 @@ fsevents@^1.2.7:
654 709 nan "^2.12.1"
655 710 node-pre-gyp "^0.12.0"
656 711
  712 +function-bind@^1.1.1:
  713 + version "1.1.1"
  714 + resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
  715 +
657 716 gauge@~2.7.3:
658 717 version "2.7.4"
659 718 resolved "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
... ... @@ -714,7 +773,7 @@ globby@^9.2.0:
714 773 pify "^4.0.1"
715 774 slash "^2.0.0"
716 775
717   -graceful-fs@^4.1.11:
  776 +graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
718 777 version "4.2.0"
719 778 resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b"
720 779
... ... @@ -728,6 +787,10 @@ has-flag@^3.0.0:
728 787 version "3.0.0"
729 788 resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
730 789
  790 +has-symbols@^1.0.0:
  791 + version "1.0.0"
  792 + resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
  793 +
731 794 has-unicode@^2.0.0:
732 795 version "2.0.1"
733 796 resolved "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
... ... @@ -759,6 +822,18 @@ has-values@^1.0.0:
759 822 is-number "^3.0.0"
760 823 kind-of "^4.0.0"
761 824
  825 +has@^1.0.1, has@^1.0.3:
  826 + version "1.0.3"
  827 + resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
  828 + dependencies:
  829 + function-bind "^1.1.1"
  830 +
  831 +homedir-polyfill@^1.0.1:
  832 + version "1.0.3"
  833 + resolved "https://registry.npm.taobao.org/homedir-polyfill/download/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
  834 + dependencies:
  835 + parse-passwd "^1.0.0"
  836 +
762 837 iconv-lite@^0.4.24, iconv-lite@^0.4.4:
763 838 version "0.4.24"
764 839 resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
... ... @@ -834,6 +909,10 @@ is-buffer@^1.1.5:
834 909 version "1.1.6"
835 910 resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
836 911
  912 +is-callable@^1.1.4:
  913 + version "1.1.4"
  914 + resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
  915 +
837 916 is-data-descriptor@^0.1.4:
838 917 version "0.1.4"
839 918 resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
... ... @@ -846,6 +925,10 @@ is-data-descriptor@^1.0.0:
846 925 dependencies:
847 926 kind-of "^6.0.0"
848 927
  928 +is-date-object@^1.0.1:
  929 + version "1.0.1"
  930 + resolved "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
  931 +
849 932 is-descriptor@^0.1.0:
850 933 version "0.1.6"
851 934 resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
... ... @@ -918,6 +1001,18 @@ is-promise@^2.1.0:
918 1001 version "2.1.0"
919 1002 resolved "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-promise%2Fdownload%2Fis-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
920 1003
  1004 +is-regex@^1.0.4:
  1005 + version "1.0.4"
  1006 + resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
  1007 + dependencies:
  1008 + has "^1.0.1"
  1009 +
  1010 +is-symbol@^1.0.2:
  1011 + version "1.0.2"
  1012 + resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
  1013 + dependencies:
  1014 + has-symbols "^1.0.0"
  1015 +
921 1016 is-windows@^1.0.2:
922 1017 version "1.0.2"
923 1018 resolved "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
... ... @@ -950,6 +1045,12 @@ json5@^2.1.0:
950 1045 dependencies:
951 1046 minimist "^1.2.0"
952 1047
  1048 +jsonfile@^4.0.0:
  1049 + version "4.0.0"
  1050 + resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
  1051 + optionalDependencies:
  1052 + graceful-fs "^4.1.6"
  1053 +
953 1054 kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
954 1055 version "3.2.2"
955 1056 resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
... ... @@ -1104,6 +1205,13 @@ needle@^2.2.1:
1104 1205 iconv-lite "^0.4.4"
1105 1206 sax "^1.2.4"
1106 1207
  1208 +node-environment-flags@^1.0.5:
  1209 + version "1.0.6"
  1210 + resolved "https://registry.npm.taobao.org/node-environment-flags/download/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088"
  1211 + dependencies:
  1212 + object.getownpropertydescriptors "^2.0.3"
  1213 + semver "^5.7.0"
  1214 +
1107 1215 node-modules-regexp@^1.0.0:
1108 1216 version "1.0.0"
1109 1217 resolved "https://registry.npm.taobao.org/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
... ... @@ -1176,12 +1284,23 @@ object-copy@^0.1.0:
1176 1284 define-property "^0.2.5"
1177 1285 kind-of "^3.0.3"
1178 1286
  1287 +object-keys@^1.0.12:
  1288 + version "1.1.1"
  1289 + resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
  1290 +
1179 1291 object-visit@^1.0.0:
1180 1292 version "1.0.1"
1181 1293 resolved "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
1182 1294 dependencies:
1183 1295 isobject "^3.0.0"
1184 1296
  1297 +object.getownpropertydescriptors@^2.0.3:
  1298 + version "2.0.3"
  1299 + resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
  1300 + dependencies:
  1301 + define-properties "^1.1.2"
  1302 + es-abstract "^1.5.1"
  1303 +
1185 1304 object.pick@^1.3.0:
1186 1305 version "1.3.0"
1187 1306 resolved "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
... ... @@ -1239,6 +1358,10 @@ p-try@^2.0.0:
1239 1358 version "2.2.0"
1240 1359 resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1241 1360
  1361 +parse-passwd@^1.0.0:
  1362 + version "1.0.0"
  1363 + resolved "https://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
  1364 +
1242 1365 pascalcase@^0.1.1:
1243 1366 version "0.1.1"
1244 1367 resolved "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
... ... @@ -1328,6 +1451,10 @@ rechoir@^0.6.2:
1328 1451 dependencies:
1329 1452 resolve "^1.1.6"
1330 1453
  1454 +regenerator-runtime@^0.13.2:
  1455 + version "0.13.2"
  1456 + resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447"
  1457 +
1331 1458 regex-not@^1.0.0, regex-not@^1.0.2:
1332 1459 version "1.0.2"
1333 1460 resolved "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
... ... @@ -1404,7 +1531,7 @@ sax@^1.2.4:
1404 1531 version "1.2.4"
1405 1532 resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
1406 1533
1407   -semver@^5.3.0, semver@^5.4.1, semver@^5.6.0:
  1534 +semver@^5.3.0, semver@^5.4.1, semver@^5.6.0, semver@^5.7.0:
1408 1535 version "5.7.0"
1409 1536 resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
1410 1537
... ... @@ -1649,6 +1776,10 @@ union-value@^1.0.0:
1649 1776 is-extendable "^0.1.1"
1650 1777 set-value "^2.0.1"
1651 1778
  1779 +universalify@^0.1.0:
  1780 + version "0.1.2"
  1781 + resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
  1782 +
1652 1783 unset-value@^1.0.0:
1653 1784 version "1.0.0"
1654 1785 resolved "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
... ... @@ -1672,6 +1803,12 @@ util-deprecate@~1.0.1:
1672 1803 version "1.0.2"
1673 1804 resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1674 1805
  1806 +v8flags@^3.1.1:
  1807 + version "3.1.3"
  1808 + resolved "https://registry.npm.taobao.org/v8flags/download/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8"
  1809 + dependencies:
  1810 + homedir-polyfill "^1.0.1"
  1811 +
1675 1812 wide-align@^1.1.0:
1676 1813 version "1.1.3"
1677 1814 resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
... ...
注册登录 后发表评论