@autobest-ui/scripts 1.5.9-y.0 → 1.6.0
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.
- package/common/extendWebpackConfigFromProject.js +31 -0
- package/common/start.js +7 -2
- package/common/webpack.common.js +0 -22
- package/package.json +2 -2
- package/spaConfig/build.js +6 -1
- package/ssrConfig/build.js +11 -2
- package/ssrConfig/server.js +13 -2
- package/ssrConfig/webpack.dev.client.js +4 -4
- package/ssrConfig/webpack.dev.js +4 -4
- package/ssrConfig/webpack.dev.server.js +4 -4
- package/ssrConfig/webpack.prod.client.js +4 -4
- package/ssrConfig/webpack.prod.server.js +4 -4
|
@@ -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 =
|
|
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);
|
package/common/webpack.common.js
CHANGED
|
@@ -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.
|
|
3
|
+
"version": "1.6.0",
|
|
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": "
|
|
95
|
+
"gitHead": "9b866727a1d94a367ef225e1b2eda1e4dd936766"
|
|
96
96
|
}
|
package/spaConfig/build.js
CHANGED
|
@@ -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
|
|
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);
|
package/ssrConfig/build.js
CHANGED
|
@@ -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
|
|
21
|
-
|
|
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);
|
package/ssrConfig/server.js
CHANGED
|
@@ -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
|
-
|
|
12
|
-
const
|
|
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
|
|
10
|
-
isHotServer
|
|
11
|
-
isProd
|
|
9
|
+
isServer,
|
|
10
|
+
isHotServer,
|
|
11
|
+
isProd
|
|
12
12
|
}),
|
|
13
13
|
{
|
|
14
14
|
// 入口文件
|
package/ssrConfig/webpack.dev.js
CHANGED
|
@@ -7,12 +7,12 @@ 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
|
|
14
|
-
isHotServer
|
|
15
|
-
isProd
|
|
13
|
+
isServer,
|
|
14
|
+
isHotServer,
|
|
15
|
+
isProd
|
|
16
16
|
}),
|
|
17
17
|
{
|
|
18
18
|
entry: getProjectPath('/src/index.tsx'),
|
|
@@ -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
|
|
11
|
-
isHotServer
|
|
12
|
-
isProd
|
|
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
|
|
12
|
-
isHotServer
|
|
13
|
-
isProd
|
|
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
|
|
10
|
-
isHotServer
|
|
11
|
-
isProd
|
|
9
|
+
isServer,
|
|
10
|
+
isHotServer,
|
|
11
|
+
isProd
|
|
12
12
|
}),
|
|
13
13
|
{
|
|
14
14
|
target: 'node',
|