ko 5.3.3 → 5.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,7 +26,7 @@ class Build extends creator_1.WebpackCreator {
26
26
  },
27
27
  plugins: [
28
28
  new webpack_1.default.optimize.SplitChunksPlugin({
29
- chunks: 'async',
29
+ chunks: 'all',
30
30
  minSize: 30000,
31
31
  maxSize: 600000,
32
32
  minChunks: 1,
@@ -34,6 +34,10 @@ class Build extends creator_1.WebpackCreator {
34
34
  maxInitialRequests: 3,
35
35
  automaticNameDelimiter: '_',
36
36
  cacheGroups: {
37
+ baseCommon: {
38
+ test: new RegExp(`[\\\/]node_modules[\\\/](${['react', 'react-router', 'react-dom', 'react-redux', 'redux', 'react-router-redux', 'lodash'].join('|')})`),
39
+ priority: 1
40
+ },
37
41
  antd: {
38
42
  name: 'antd',
39
43
  test: /[\\/]node_modules[\\/]antd[\\/]/,
@@ -18,18 +18,18 @@ class Dev extends creator_1.WebpackCreator {
18
18
  this.devServerConf = {
19
19
  port,
20
20
  host,
21
+ contentBase: config_1.default.defaultPaths.dist,
21
22
  historyApiFallback: true,
22
- allowedHosts: 'all',
23
- static: {
24
- publicPath: '/',
23
+ disableHostCheck: true,
24
+ compress: true,
25
+ clientLogLevel: 'none',
26
+ hot: true,
27
+ inline: true,
28
+ publicPath: '/',
29
+ watchOptions: {
30
+ ignored: /node_modules/,
31
+ aggregateTimeout: 600,
25
32
  },
26
- client: {
27
- overlay: {
28
- errors: true,
29
- warnings: false,
30
- },
31
- },
32
- setupExitSignals: true,
33
33
  ...userDefinedDevServerConfig,
34
34
  };
35
35
  }
@@ -37,7 +37,11 @@ class Dev extends creator_1.WebpackCreator {
37
37
  const conf = {
38
38
  devtool: 'cheap-module-source-map',
39
39
  plugins: [this.opts.analyzer && new BundleAnalyzerPlugin()].filter(Boolean),
40
- devServer: this.devServerConf,
40
+ optimization: {
41
+ splitChunks: {
42
+ chunks: 'all',
43
+ },
44
+ },
41
45
  };
42
46
  return this.mergeConfig([this.baseConfig, conf]);
43
47
  }
@@ -66,22 +70,39 @@ class Dev extends creator_1.WebpackCreator {
66
70
  return this.changePort(newPort, port);
67
71
  }
68
72
  }
73
+ threadLoaderWarmUp() {
74
+ const threadLoader = require('thread-loader');
75
+ threadLoader.warmup({}, [require.resolve('babel-loader')]);
76
+ }
69
77
  async action() {
70
78
  const { port } = this.devServerConf;
71
- const newPort = await this.checkPort(parseInt(port));
79
+ const newPort = await this.checkPort(port);
72
80
  if (!newPort) {
73
81
  process.exit(0);
74
82
  }
75
83
  this.devServerConf.port = newPort;
76
- const config = this.config();
77
- const compiler = (0, webpack_1.default)(config);
78
- const devServer = new webpack_dev_server_1.default(config.devServer, compiler);
79
- await devServer.start();
80
- process.stdin.on('end', () => {
81
- devServer.stop();
82
- process.exit(0);
84
+ webpack_dev_server_1.default.addDevServerEntrypoints(this.config(), this.devServerConf);
85
+ this.threadLoaderWarmUp();
86
+ const compiler = (0, webpack_1.default)(this.config());
87
+ const devServer = new webpack_dev_server_1.default(compiler, this.devServerConf);
88
+ let isFirstCompile = true;
89
+ compiler.hooks.done.tap('done', stats => {
90
+ if (isFirstCompile) {
91
+ isFirstCompile = false;
92
+ this.successStdout('development server has been started');
93
+ }
94
+ if (stats.hasErrors()) {
95
+ console.log(stats.toString({
96
+ colors: true,
97
+ }));
98
+ }
99
+ });
100
+ devServer.listen(this.devServerConf.port, this.devServerConf.host, err => {
101
+ if (err) {
102
+ console.error(err);
103
+ process.exit(1);
104
+ }
83
105
  });
84
- process.stdin.resume();
85
106
  }
86
107
  }
87
108
  exports.default = Dev;
package/lib/cli.js CHANGED
@@ -30,6 +30,7 @@ program
30
30
  .option('-p, --port <port>', 'server start on which port', parseInt)
31
31
  .option('--host <host>', 'specify a host to use')
32
32
  .option('-t, --ts', 'support typescript')
33
+ .option('-h, --hash', 'output file name with hash')
33
34
  .option('-a,--analyzer', 'support building analyzer')
34
35
  .action((opts) => {
35
36
  process.env.NODE_ENV = 'development';
@@ -28,7 +28,7 @@ function getWebpackBaseConf(opts) {
28
28
  entry: `src/index.${ts ? 'tsx' : 'js'}`,
29
29
  output: {
30
30
  path: config_1.default.defaultPaths.dist,
31
- filename: hash ? 'js/[name].[contenthash].js' : 'js/[name].js',
31
+ filename: hash ? '[name].[contenthash].js' : '[name].js',
32
32
  publicPath: '/',
33
33
  },
34
34
  module: {
@@ -43,6 +43,16 @@ function getWebpackBaseConf(opts) {
43
43
  configFile: config_1.default.defaultPaths.tsconfig,
44
44
  }),
45
45
  ].filter(Boolean),
46
+ fallback: {
47
+ fs: false,
48
+ path: false,
49
+ events: false,
50
+ os: require.resolve('os-browserify/browser'),
51
+ crypto: require.resolve('crypto-browserify'),
52
+ stream: require.resolve('stream-browserify'),
53
+ buffer: require.resolve('buffer/'),
54
+ string_decoder: require.resolve('string_decoder/'),
55
+ },
46
56
  },
47
57
  performance: {
48
58
  hints: false,
@@ -50,6 +60,9 @@ function getWebpackBaseConf(opts) {
50
60
  cache: {
51
61
  type: config_1.default.isProductionEnv ? 'filesystem' : 'memory',
52
62
  },
63
+ stats: {
64
+ cachedModules: false,
65
+ },
53
66
  };
54
67
  return webpackBaseConf;
55
68
  }
@@ -17,12 +17,25 @@ const scriptLoader = [
17
17
  },
18
18
  {
19
19
  test: /\.(t|j)sx?$/,
20
- exclude: {
21
- and: [/node_modules/],
22
- not: [/dt-common/],
20
+ include: (input) => {
21
+ if (input.includes('node_modules/dt-common/src/')) {
22
+ return true;
23
+ }
24
+ else if (input.includes('node_modules')) {
25
+ return false;
26
+ }
27
+ else {
28
+ return true;
29
+ }
23
30
  },
24
31
  use: [
25
- THREAD_LOADER,
32
+ {
33
+ loader: THREAD_LOADER,
34
+ options: {
35
+ workerNodeArgs: ['--max-old-space-size=4096'],
36
+ name: 'ko-js-pool',
37
+ },
38
+ },
26
39
  {
27
40
  loader: BABEL_LOADER,
28
41
  options: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ko",
3
- "version": "5.3.3",
3
+ "version": "5.3.6",
4
4
  "description": "build & lint library",
5
5
  "keywords": [
6
6
  "ko",
@@ -40,10 +40,12 @@
40
40
  "autoprefixer": "^10.4.2",
41
41
  "babel-loader": "^8.2.3",
42
42
  "babel-preset-ko-app": "^1.0.0",
43
+ "buffer": "^6.0.3",
43
44
  "case-sensitive-paths-webpack-plugin": "^2.4.0",
44
45
  "chalk": "^4.1.2",
45
46
  "clean-webpack-plugin": "4.0.0",
46
47
  "commander": "^9.0.0",
48
+ "crypto-browserify": "^3.12.0",
47
49
  "css-loader": "^6.6.0",
48
50
  "css-minimizer-webpack-plugin": "^3.4.1",
49
51
  "detect-port": "^1.3.0",
@@ -52,17 +54,20 @@
52
54
  "less": "^3.13.1",
53
55
  "less-loader": "^9.1.0",
54
56
  "mini-css-extract-plugin": "^2.5.3",
57
+ "os-browserify": "^0.3.0",
55
58
  "postcss": "^8.4.7",
56
59
  "postcss-loader": "^6.2.1",
57
60
  "react-dev-utils": "^12.0.0",
58
61
  "react-refresh": "^0.11.0",
59
62
  "sass": "^1.49.9",
60
63
  "sass-loader": "^12.6.0",
64
+ "stream-browserify": "^3.0.0",
65
+ "string_decoder": "^1.3.0",
61
66
  "thread-loader": "^3.0.4",
62
67
  "tsconfig-paths-webpack-plugin": "^3.5.2",
63
68
  "webpack": "^5.69.1",
64
69
  "webpack-bundle-analyzer": "^4.5.0",
65
- "webpack-dev-server": "^4.7.4",
70
+ "webpack-dev-server": "3.11.3",
66
71
  "webpack-merge": "^5.8.0",
67
72
  "webpackbar": "^5.0.2",
68
73
  "worker-loader": "^3.0.8"
@@ -81,7 +86,6 @@
81
86
  "node": ">=10.13.0"
82
87
  },
83
88
  "scripts": {
84
- "preinstall": "node scripts/preinstall.js",
85
89
  "debug": "tsc -w --sourceMap",
86
90
  "test": "jest",
87
91
  "build": "tsc"
@@ -1,52 +0,0 @@
1
- /* eslint-disable no-octal-escape */
2
- /**
3
- * @link https://github.com/DTStack/devops/blob/main/force-using-yarn-and-lock-version/preinstall.js
4
- */
5
- let err = false;
6
-
7
- const LOCK_NODE_VERSION = true;
8
- const LOCK_YARN_VERSION = false;
9
- const FORCE_YARN_INSTALL = false;
10
-
11
- if (LOCK_NODE_VERSION) {
12
- const majorAndMinorNodeVersion = Number(
13
- /(\d+).(\d+)/.exec(process.versions.node)[0]
14
- );
15
- /**
16
- * webpack minor support version
17
- * @link https://webpack.js.org/migrate/5/#preparations
18
- */
19
- const webpack5SupportLeastVersion = 10.13;
20
-
21
- if (majorAndMinorNodeVersion < webpack5SupportLeastVersion) {
22
- console.error(
23
- '\033[1;31m*** Webpack 5 requires at least Node.js 10.13.0 (LTS), please make sure you upgrade your Node.js.\033[0;0m'
24
- );
25
- err = true;
26
- }
27
- }
28
-
29
- if (LOCK_YARN_VERSION) {
30
- const cp = require('child_process');
31
- const yarnVersion = cp.execSync('yarn -v', { encoding: 'utf8' }).trim();
32
- const parsedYarnVersion = /^(\d+)\.(\d+)\./.exec(yarnVersion);
33
- const majorYarnVersion = parseInt(parsedYarnVersion[1]);
34
- const minorYarnVersion = parseInt(parsedYarnVersion[2]);
35
-
36
- if (majorYarnVersion < 1 || minorYarnVersion < 10) {
37
- console.error('\033[1;31m*** Please use yarn >=1.10.1.\033[0;0m');
38
- err = true;
39
- }
40
- }
41
-
42
- if (FORCE_YARN_INSTALL) {
43
- // eslint-disable-next-line dot-notation
44
- if (!/yarn[\w-.]*\.js$|yarnpkg$/.test(process.env['npm_execpath'])) {
45
- console.error(
46
- '\033[1;31m*** Please use yarn to install dependencies.\033[0;0m'
47
- );
48
- err = true;
49
- }
50
- }
51
-
52
- err && process.exit(1);