@autobest-ui/scripts 1.5.9-alpha.1 → 1.5.9-y.1

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.
@@ -0,0 +1,31 @@
1
+ const { getProjectPath, isExistsSyncFile } = require('./utils');
2
+ const appWebpackConfigPath = getProjectPath('/config/app.webpack.js');
3
+
4
+ module.exports = function extendWebpackConfigFromProject(
5
+ resultCallback,
6
+ appConfig,
7
+ extendEnv,
8
+ { isProd, isServer, isHotServer }
9
+ ) {
10
+ const result = resultCallback(appConfig, extendEnv, { isProd, isServer, isHotServer });
11
+ if (isExistsSyncFile(appWebpackConfigPath)) {
12
+ const extendConfig = require(appWebpackConfigPath);
13
+ if (typeof extendConfig !== 'function') {
14
+ throw Error(
15
+ `Extend webpack config file only functions are supported and return extend result! \n current type is ${typeof extendConfig} \n filename is ${appWebpackConfigPath}`
16
+ );
17
+ }
18
+ const extendResult = extendConfig(result, appConfig, extendEnv, {
19
+ isProd,
20
+ isServer,
21
+ isHotServer
22
+ });
23
+ if (!extendResult) {
24
+ throw Error(
25
+ `Return extend result! \n current extendResult is ${extendResult} \n filename is ${appWebpackConfigPath}`
26
+ );
27
+ }
28
+ return extendResult;
29
+ }
30
+ return result;
31
+ };
package/common/start.js CHANGED
@@ -4,6 +4,7 @@ const open = require('open');
4
4
  const appConfig = require('./appConfig');
5
5
  const getEnvironmentInfo = require('./extendEnv');
6
6
  const { parseArgsToJson } = require('./utils');
7
+ const extendWebpackConfigFromProject = require('./extendWebpackConfigFromProject');
7
8
 
8
9
  function openStartRun(webpackFactory) {
9
10
  process.env.BABEL_ENV = 'development';
@@ -41,9 +42,13 @@ function openStartRun(webpackFactory) {
41
42
  };
42
43
 
43
44
  const startOpenPath = appConfig.startOpenPath ? appConfig.startOpenPath : '';
44
-
45
45
  try {
46
- const config = webpackFactory({ ...appConfig, port: PORT, startOpenPath }, extendEnv);
46
+ const config = extendWebpackConfigFromProject(
47
+ webpackFactory,
48
+ { ...appConfig, port: PORT, startOpenPath },
49
+ extendEnv,
50
+ { isProd: false, isServer: false, isHotServer: false }
51
+ );
47
52
  options.static.publicPath = config.output.publicPath;
48
53
  options.static.directory = config.output.path;
49
54
  const compiler = webpack(config);
@@ -3,8 +3,6 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
3
3
  const ESLintPlugin = require('eslint-webpack-plugin');
4
4
  const ProgressBarPlugin = require('progress-bar-webpack-plugin');
5
5
  const getCSSModuleLocalIdent = require('./getCSSModuleLocalIdent');
6
- const { getProjectPath, isExistsSyncFile } = require('./utils');
7
- const appWebpackConfigPath = getProjectPath('/config/app.webpack.js');
8
6
 
9
7
  const sassRegex = /\.(scss|sass)$/;
10
8
  const sassModuleRegex = /\.module\.(scss|sass)$/;
@@ -249,25 +247,5 @@ module.exports = (appConfig, extendEnv, { isProd, isServer, isHotServer }) => {
249
247
  };
250
248
  }
251
249
 
252
- if (isExistsSyncFile(appWebpackConfigPath)) {
253
- const extendConfig = require(appWebpackConfigPath);
254
- if (typeof extendConfig !== 'function') {
255
- throw Error(
256
- `Extend webpack config file only functions are supported and return extend result! \n current type is ${typeof extendConfig} \n filename is ${appWebpackConfigPath}`
257
- );
258
- }
259
- const extendResult = extendConfig(result, appConfig, extendEnv, {
260
- isProd,
261
- isServer,
262
- isHotServer
263
- });
264
- if (!extendResult) {
265
- throw Error(
266
- `Return extend result! \n current extendResult is ${extendResult} \n filename is ${appWebpackConfigPath}`
267
- );
268
- }
269
- return extendResult;
270
- }
271
-
272
250
  return result;
273
251
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autobest-ui/scripts",
3
- "version": "1.5.9-alpha.1",
3
+ "version": "1.5.9-y.1",
4
4
  "private": false,
5
5
  "description": "utils for project tools",
6
6
  "bin": {
@@ -92,5 +92,5 @@
92
92
  "webpack-merge": "5.8.0",
93
93
  "webpack-node-externals": "3.0.0"
94
94
  },
95
- "gitHead": "6236aaf8638cb9b5dad99d8fbc191cc9e2efbee4"
95
+ "gitHead": "9816ec5b0a083b664c355b90aa3c4d702b54ef34"
96
96
  }
@@ -3,6 +3,7 @@ const chalk = require('chalk');
3
3
  const appConfig = require('../common/appConfig');
4
4
  const { runCallback } = require('../common/build');
5
5
  const getClientEnvironment = require('../common/extendEnv');
6
+ const extendWebpackConfigFromProject = require('../common/extendWebpackConfigFromProject');
6
7
  const webpackFactory = require('./webpack.prod');
7
8
 
8
9
  process.env.BABEL_ENV = 'production';
@@ -16,7 +17,11 @@ process.on('unhandledRejection', err => {
16
17
  const extendEnv = getClientEnvironment();
17
18
 
18
19
  function build() {
19
- const config = webpackFactory(appConfig, extendEnv);
20
+ const config = extendWebpackConfigFromProject(webpackFactory, appConfig, extendEnv, {
21
+ isProd: true,
22
+ isServer: false,
23
+ isHotServer: false
24
+ });
20
25
  // eslint-disable-next-line no-console
21
26
  console.log(chalk.green('Creating an optimized production build...'));
22
27
  const compiler = webpack(config);
@@ -11,7 +11,7 @@ module.exports = function (appConfig, extendEnv) {
11
11
  entry: getProjectPath('/src/index.tsx'),
12
12
  output: {
13
13
  publicPath: '/',
14
- path: '/dist',
14
+ path: getProjectPath('/dist'),
15
15
  pathinfo: true,
16
16
  filename: '[name].js',
17
17
  chunkFilename: '[name].chunk.js'
@@ -11,7 +11,7 @@ module.exports = function (appConfig, extendEnv) {
11
11
  // 打包的出口
12
12
  output: {
13
13
  publicPath: '/',
14
- path: '/build',
14
+ path: getProjectPath('/build'),
15
15
  // 入口文件生产的js
16
16
  filename: `js/[name].chunk.js?v=${extendEnv.version}`,
17
17
  // 非入口文件生产的js
@@ -3,6 +3,7 @@ const chalk = require('chalk');
3
3
  const appConfig = require('../common/appConfig');
4
4
  const { runCallback } = require('../common/build');
5
5
  const getEnvironmentInfo = require('../common/extendEnv');
6
+ const extendWebpackConfigFromProject = require('../common/extendWebpackConfigFromProject');
6
7
  const clientConfigFactory = require('./webpack.prod.client');
7
8
  const serverConfigFactory = require('./webpack.prod.server');
8
9
 
@@ -17,8 +18,16 @@ process.on('unhandledRejection', err => {
17
18
  const extendEnv = getEnvironmentInfo();
18
19
 
19
20
  function build() {
20
- const clientConfig = clientConfigFactory(appConfig, extendEnv);
21
- const serverConfig = serverConfigFactory(appConfig, extendEnv);
21
+ const clientConfig = extendWebpackConfigFromProject(clientConfigFactory, appConfig, extendEnv, {
22
+ isServer: false,
23
+ isHotServer: false,
24
+ isProd: true
25
+ });
26
+ const serverConfig = extendWebpackConfigFromProject(serverConfigFactory, appConfig, extendEnv, {
27
+ isServer: true,
28
+ isHotServer: false,
29
+ isProd: true
30
+ });
22
31
  // eslint-disable-next-line no-console
23
32
  console.log(chalk.green('Creating an optimized production build...'));
24
33
  const clientCompiler = webpack(clientConfig);
@@ -4,12 +4,23 @@ const webpack = require('webpack');
4
4
  const appConfig = require('../common/appConfig');
5
5
  const getEnvironmentInfo = require('../common/extendEnv');
6
6
  const { getProjectPath, parseArgsToJson } = require('../common/utils');
7
+ const extendWebpackConfigFromProject = require('../common/extendWebpackConfigFromProject');
7
8
  const clientConfigFactory = require('./webpack.dev.client');
8
9
  const serverConfigFactory = require('./webpack.dev.server');
9
10
 
10
11
  const extendEnv = getEnvironmentInfo(true);
11
- const clientConfig = clientConfigFactory(appConfig, extendEnv);
12
- const serverConfig = serverConfigFactory(appConfig, extendEnv);
12
+
13
+ const clientConfig = extendWebpackConfigFromProject(clientConfigFactory, appConfig, extendEnv, {
14
+ isProd: false,
15
+ isServer: false,
16
+ isHotServer: true
17
+ });
18
+
19
+ const serverConfig = extendWebpackConfigFromProject(serverConfigFactory, appConfig, extendEnv, {
20
+ isServer: true,
21
+ isHotServer: true,
22
+ isProd: false
23
+ });
13
24
 
14
25
  const PORT = process.env.PORT || parseArgsToJson.port || appConfig.hotSsrDefaultPort;
15
26
  const hotSsrOpenPath = appConfig.hotSsrOpenPath ? appConfig.hotSsrOpenPath : '';
@@ -3,12 +3,12 @@ const LoadablePlugin = require('@loadable/webpack-plugin');
3
3
  const { getProjectPath } = require('../common/utils');
4
4
  const baseConfig = require('./webpack.base');
5
5
 
6
- module.exports = function (appConfig, extendEnv) {
6
+ module.exports = function (appConfig, extendEnv, { isServer, isHotServer, isProd }) {
7
7
  return merge(
8
8
  baseConfig(appConfig, extendEnv, {
9
- isServer: false,
10
- isHotServer: true,
11
- isProd: false
9
+ isServer,
10
+ isHotServer,
11
+ isProd
12
12
  }),
13
13
  {
14
14
  // 入口文件
@@ -7,18 +7,18 @@ const baseConfig = require('./webpack.base');
7
7
 
8
8
  const HOST = process.env.HOST || ip.address() || 'localhost';
9
9
 
10
- module.exports = function (appConfig, extendEnv) {
10
+ module.exports = function (appConfig, extendEnv, { isServer, isHotServer, isProd }) {
11
11
  return merge(
12
12
  baseConfig(appConfig, extendEnv, {
13
- isServer: false,
14
- isHotServer: false,
15
- isProd: false
13
+ isServer,
14
+ isHotServer,
15
+ isProd
16
16
  }),
17
17
  {
18
18
  entry: getProjectPath('/src/index.tsx'),
19
19
  output: {
20
20
  publicPath: '/',
21
- path: '/dist',
21
+ path: getProjectPath('/dist'),
22
22
  pathinfo: true,
23
23
  filename: '[name].js',
24
24
  chunkFilename: '[name].chunk.js'
@@ -4,12 +4,12 @@ const { merge } = require('webpack-merge');
4
4
  const { getProjectPath } = require('../common/utils');
5
5
  const baseConfig = require('./webpack.base');
6
6
 
7
- module.exports = function (appConfig, extendEnv) {
7
+ module.exports = function (appConfig, extendEnv, { isServer, isHotServer, isProd }) {
8
8
  return merge(
9
9
  baseConfig(appConfig, extendEnv, {
10
- isServer: true,
11
- isHotServer: true,
12
- isProd: false
10
+ isServer,
11
+ isHotServer,
12
+ isProd
13
13
  }),
14
14
  {
15
15
  // 告诉 webpack打包的是 node端代码,避免把nodejs内置的模块打包到输出文件中,例如 fs path
@@ -5,12 +5,12 @@ const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
5
5
  const { getProjectPath, deleteFolders } = require('../common/utils');
6
6
  const baseConfig = require('./webpack.base');
7
7
 
8
- module.exports = function (appConfig, extendEnv) {
8
+ module.exports = function (appConfig, extendEnv, { isServer, isHotServer, isProd }) {
9
9
  const result = merge(
10
10
  baseConfig(appConfig, extendEnv, {
11
- isServer: false,
12
- isHotServer: false,
13
- isProd: true
11
+ isServer,
12
+ isHotServer,
13
+ isProd
14
14
  }),
15
15
  {
16
16
  entry: getProjectPath('/src/client-entry.tsx'),
@@ -3,12 +3,12 @@ const { merge } = require('webpack-merge');
3
3
  const { getProjectPath, deleteFolders } = require('../common/utils');
4
4
  const baseConfig = require('./webpack.base');
5
5
 
6
- module.exports = function (appConfig, extendEnv) {
6
+ module.exports = function (appConfig, extendEnv, { isServer, isHotServer, isProd }) {
7
7
  const result = merge(
8
8
  baseConfig(appConfig, extendEnv, {
9
- isServer: true,
10
- isHotServer: false,
11
- isProd: true
9
+ isServer,
10
+ isHotServer,
11
+ isProd
12
12
  }),
13
13
  {
14
14
  target: 'node',