qmzreact 1.0.3 → 1.0.4

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.
@@ -1,156 +1,157 @@
1
- var path = require('path');
2
- var fs = require('fs');
3
- var devMode = process.env.NODE_ENV !== 'production';
4
- var MiniCssExtractPlugin = require('mini-css-extract-plugin');
5
- var { merge } = require('webpack-merge');
6
- var { utils, processConfig } = require('../options');
7
- var sassGlobalStyles = '';
8
- processConfig.sassGlobalStyles.forEach((item) => {
9
- return sassGlobalStyles += `@import "${item}";`;
10
- });
11
- try {
12
- fs.accessSync(utils.rootPath('src/global.scss'), fs.constants.F_OK);
13
- sassGlobalStyles += `@import "@/global.scss";`;
14
- } catch (err) {
15
- // console.log(err);
16
- };
17
- module.exports = [
18
- {
19
- test: /\.t|jsx?$/,
20
- use: [
21
- {
22
- loader: "thread-loader",
23
- // 有同样配置的 loader 会共享一个 worker 池
24
- options: {
25
- // 产生的 worker 的数量,默认是 (cpu 核心数 - 1),或者,
26
- // 在 require('os').cpus() 是 undefined 时回退至 1
27
- // workers: 3,
28
-
29
- // 一个 worker 进程中并行执行工作的数量
30
- // 默认为 20
31
- workerParallelJobs: 60,
32
-
33
- // 额外的 node.js 参数
34
- workerNodeArgs: ['--max-old-space-size=2048'],
35
-
36
- // 允许重新生成一个僵死的 work 池
37
- // 这个过程会降低整体编译速度
38
- // 并且开发环境应该设置为 false
39
- poolRespawn: false,
40
-
41
- // 闲置时定时删除 worker 进程
42
- // 默认为 500(ms)
43
- // 可以设置为无穷大,这样在监视模式(--watch)下可以保持 worker 持续存在
44
- poolTimeout: 2000,
45
-
46
- // 池分配给 worker 的工作数量
47
- // 默认为 200
48
- // 降低这个数值会降低总体的效率,但是会提升工作分布更均一
49
- // poolParallelJobs: 50,
50
-
51
- // 池的名称
52
- // 可以修改名称来创建其余选项都一样的池
53
- name: "node-build-pool"
54
- },
55
- },
56
- {
57
- loader: 'babel-loader',
58
- options: merge({
59
- presets: [
60
- [
61
- "@babel/preset-env",
62
- {
63
- useBuiltIns: "usage",
64
- corejs: 3.22
65
- }
66
- ],
67
- "@babel/preset-react",
68
- "@babel/preset-flow"
69
- ]
70
- }, processConfig.babelLoaderOptions)
71
- }
72
- ],
73
- exclude: (modulePath) => {
74
- // 定义你"强制需要编译"的模块列表
75
- const includeModules = processConfig.compileDependencies;
76
- if (modulePath.includes('node_modules')) {
77
- // 检查当前路径是否包含这些包名
78
- const shouldInclude = includeModules.some(name =>
79
- modulePath.includes(`node_modules${path.sep}${name}${path.sep}`));
80
- return !shouldInclude;
81
- } else {
82
- return false;
83
- }
84
- }
85
- },
86
- {
87
- test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
88
- use: [
89
- {
90
- loader: 'url-loader',
91
- options: {
92
- limit: 1024,
93
- outputPath: 'imgs',
94
- }
95
- }
96
- ],
97
- },
98
- {
99
- test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
100
- use: [
101
- {
102
- loader: 'url-loader',
103
- options: {
104
- limit: 10000,
105
- name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
106
- }
107
- }
108
- ],
109
- },
110
- {
111
- test: /\.(sa|sc|c)ss$/,
112
- use: [
113
- devMode ? 'style-loader' : MiniCssExtractPlugin.loader,
114
- {
115
- loader: 'css-loader',
116
- options: merge({
117
- modules: {
118
- localIdentName: '[name]__[local]___[hash:base64:5]',
119
- exportLocalsConvention: 'camelCase'
120
- }
121
- }, processConfig.cssLoaderOptions)
122
- },
123
- {
124
- loader: 'postcss-loader',
125
- options: {
126
- // 2. PostCSS 插件配置写在这里
127
- postcssOptions: merge({
128
- plugins: [
129
- require('autoprefixer')({
130
- overrideBrowserslist: [
131
- '> 0.5%',
132
- 'last 2 versions',
133
- 'not dead',
134
- 'iOS >= 9',
135
- 'Android >= 5'
136
- ]
137
- })
138
- // 如果还有其他插件,继续在这里添加,例如:
139
- // require('postcss-preset-env')({ ... })
140
- ]
141
- }, processConfig.postcssLoaderOptions)
142
- }
143
- },
144
- {
145
- loader: "sass-loader",
146
- options: merge({
147
- additionalData: sassGlobalStyles,
148
- implementation: require('sass'),
149
- sassOptions: {
150
- fiber: false,
151
- },
152
- }, processConfig.sassLoaderOptions)
153
- }
154
- ],
155
- },
1
+ var path = require('path');
2
+ var fs = require('fs');
3
+ var devMode = process.env.NODE_ENV !== 'production';
4
+ var MiniCssExtractPlugin = require('mini-css-extract-plugin');
5
+ var { merge } = require('webpack-merge');
6
+ var { utils, processConfig } = require('../options');
7
+ var sassGlobalStyles = '';
8
+ processConfig.sassGlobalStyles.forEach((item) => {
9
+ return sassGlobalStyles += `@import "${item}";`;
10
+ });
11
+ try {
12
+ fs.accessSync(utils.rootPath('src/global.scss'), fs.constants.F_OK);
13
+ sassGlobalStyles += `@import "@/global.scss";`;
14
+ } catch (err) {
15
+ // console.log(err);
16
+ };
17
+ module.exports = [
18
+ {
19
+ test: /\.t|jsx?$/,
20
+ use: [
21
+ {
22
+ loader: "thread-loader",
23
+ // 有同样配置的 loader 会共享一个 worker 池
24
+ options: {
25
+ // 产生的 worker 的数量,默认是 (cpu 核心数 - 1),或者,
26
+ // 在 require('os').cpus() 是 undefined 时回退至 1
27
+ // workers: 3,
28
+
29
+ // 一个 worker 进程中并行执行工作的数量
30
+ // 默认为 20
31
+ workerParallelJobs: 60,
32
+
33
+ // 额外的 node.js 参数
34
+ workerNodeArgs: ['--max-old-space-size=2048'],
35
+
36
+ // 允许重新生成一个僵死的 work 池
37
+ // 这个过程会降低整体编译速度
38
+ // 并且开发环境应该设置为 false
39
+ poolRespawn: false,
40
+
41
+ // 闲置时定时删除 worker 进程
42
+ // 默认为 500(ms)
43
+ // 可以设置为无穷大,这样在监视模式(--watch)下可以保持 worker 持续存在
44
+ poolTimeout: 2000,
45
+
46
+ // 池分配给 worker 的工作数量
47
+ // 默认为 200
48
+ // 降低这个数值会降低总体的效率,但是会提升工作分布更均一
49
+ // poolParallelJobs: 50,
50
+
51
+ // 池的名称
52
+ // 可以修改名称来创建其余选项都一样的池
53
+ name: "node-build-pool"
54
+ },
55
+ },
56
+ {
57
+ loader: 'babel-loader',
58
+ options: merge({
59
+ presets: [
60
+ [
61
+ "@babel/preset-env",
62
+ {
63
+ useBuiltIns: "usage",
64
+ corejs: 3.22
65
+ }
66
+ ],
67
+ "@babel/preset-react",
68
+ "@babel/preset-flow",
69
+ '@babel/preset-typescript',
70
+ ]
71
+ }, processConfig.babelLoaderOptions)
72
+ }
73
+ ],
74
+ exclude: (modulePath) => {
75
+ // 定义你"强制需要编译"的模块列表
76
+ const includeModules = processConfig.compileDependencies;
77
+ if (modulePath.includes('node_modules')) {
78
+ // 检查当前路径是否包含这些包名
79
+ const shouldInclude = includeModules.some(name =>
80
+ modulePath.includes(`node_modules${path.sep}${name}${path.sep}`));
81
+ return !shouldInclude;
82
+ } else {
83
+ return false;
84
+ }
85
+ }
86
+ },
87
+ {
88
+ test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
89
+ use: [
90
+ {
91
+ loader: 'url-loader',
92
+ options: {
93
+ limit: 1024,
94
+ outputPath: 'imgs',
95
+ }
96
+ }
97
+ ],
98
+ },
99
+ {
100
+ test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
101
+ use: [
102
+ {
103
+ loader: 'url-loader',
104
+ options: {
105
+ limit: 10000,
106
+ name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
107
+ }
108
+ }
109
+ ],
110
+ },
111
+ {
112
+ test: /\.(sa|sc|c)ss$/,
113
+ use: [
114
+ devMode ? 'style-loader' : MiniCssExtractPlugin.loader,
115
+ {
116
+ loader: 'css-loader',
117
+ options: merge({
118
+ modules: {
119
+ localIdentName: '[name]__[local]___[hash:base64:5]',
120
+ exportLocalsConvention: 'camelCase'
121
+ }
122
+ }, processConfig.cssLoaderOptions)
123
+ },
124
+ {
125
+ loader: 'postcss-loader',
126
+ options: {
127
+ // 2. PostCSS 插件配置写在这里
128
+ postcssOptions: merge({
129
+ plugins: [
130
+ require('autoprefixer')({
131
+ overrideBrowserslist: [
132
+ '> 0.5%',
133
+ 'last 2 versions',
134
+ 'not dead',
135
+ 'iOS >= 9',
136
+ 'Android >= 5'
137
+ ]
138
+ })
139
+ // 如果还有其他插件,继续在这里添加,例如:
140
+ // require('postcss-preset-env')({ ... })
141
+ ]
142
+ }, processConfig.postcssLoaderOptions)
143
+ }
144
+ },
145
+ {
146
+ loader: "sass-loader",
147
+ options: merge({
148
+ additionalData: sassGlobalStyles,
149
+ implementation: require('sass'),
150
+ sassOptions: {
151
+ fiber: false,
152
+ },
153
+ }, processConfig.sassLoaderOptions)
154
+ }
155
+ ],
156
+ },
156
157
  ]
@@ -1,63 +1,63 @@
1
- var webpack = require('webpack')
2
- var { merge } = require('webpack-merge');
3
- var path = require('path')
4
- var config = require('./index')
5
- var { processConfig, utils } = require('../options');
6
- var loaders = require('./loaders');
7
- var HtmlWebpackPlugin = require('html-webpack-plugin');
8
- var AddAssetHtmlPlugin = require('add-asset-html-webpack-plugin');
9
- var fs = require('fs');
10
-
11
- var entry = [];
12
- var entryFile = ['./src/index.js', './src/index.jsx', './src/index.ts', './src/index.tsx'];
13
- for (var i = 0; i < entryFile.length; i++) {
14
- try {
15
- fs.accessSync(utils.rootPath(entryFile[i]), fs.constants.F_OK);
16
- entry = [utils.rootPath(entryFile[i])];
17
- break;
18
- } catch (err) {
19
- // continue to next candidate
20
- }
21
- }
22
-
23
- var plugins = [];
24
- if (processConfig.dll) {
25
- plugins = [
26
- new AddAssetHtmlPlugin({
27
- filepath: config.dev.assetsDllOutPath + '/react-vendor.js',
28
- publicPath: config.build.assetsPublicPath + 'js',
29
- outputPath: 'js',
30
- includeSourcemap: false
31
- }),
32
- new webpack.DllReferencePlugin({
33
- context: __dirname,
34
- manifest: utils.rootPath('./dll/react-vendor-manifest.json')
35
- })
36
- ]
37
- }
38
- module.exports = {
39
- entry: [
40
- ...processConfig.entry,
41
- ...entry
42
- ],
43
- resolve: {
44
- modules: ['node_modules', 'public'],
45
- extensions: ['.js','.jsx', '.ts', '.tsx'],
46
- alias: merge({
47
- '@': utils.rootPath('./src'),
48
- }, processConfig.alias)
49
- },
50
- module: {
51
- rules: loaders
52
- },
53
- plugins:[
54
- // 生成 html
55
- new HtmlWebpackPlugin({
56
- template: utils.rootPath('./public/index.html'),
57
- minify: false
58
- }),
59
- ...plugins,
60
- ]
61
- }
62
-
63
-
1
+ var webpack = require('webpack')
2
+ var { merge } = require('webpack-merge');
3
+ var path = require('path')
4
+ var config = require('./index')
5
+ var { processConfig, utils } = require('../options');
6
+ var loaders = require('./loaders');
7
+ var HtmlWebpackPlugin = require('html-webpack-plugin');
8
+ var AddAssetHtmlPlugin = require('add-asset-html-webpack-plugin');
9
+ var fs = require('fs');
10
+
11
+ var entry = [];
12
+ var entryFile = ['./src/index.js', './src/index.jsx', './src/index.ts', './src/index.tsx'];
13
+ for (var i = 0; i < entryFile.length; i++) {
14
+ try {
15
+ fs.accessSync(utils.rootPath(entryFile[i]), fs.constants.F_OK);
16
+ entry = [utils.rootPath(entryFile[i])];
17
+ break;
18
+ } catch (err) {
19
+ // continue to next candidate
20
+ }
21
+ }
22
+
23
+ var plugins = [];
24
+ if (processConfig.dll) {
25
+ plugins = [
26
+ new AddAssetHtmlPlugin({
27
+ filepath: config.dev.assetsDllOutPath + '/react-vendor.js',
28
+ publicPath: config.build.assetsPublicPath + 'js',
29
+ outputPath: 'js',
30
+ includeSourcemap: false
31
+ }),
32
+ new webpack.DllReferencePlugin({
33
+ context: __dirname,
34
+ manifest: utils.rootPath('./dll/react-vendor-manifest.json')
35
+ })
36
+ ]
37
+ }
38
+ module.exports = {
39
+ entry: [
40
+ ...processConfig.entry,
41
+ ...entry
42
+ ],
43
+ resolve: {
44
+ modules: ['node_modules', 'public'],
45
+ extensions: ['.js','.jsx', '.ts', '.tsx'],
46
+ alias: merge({
47
+ '@': utils.rootPath('./src'),
48
+ }, processConfig.alias)
49
+ },
50
+ module: {
51
+ rules: loaders
52
+ },
53
+ plugins:[
54
+ // 生成 html
55
+ new HtmlWebpackPlugin({
56
+ template: utils.rootPath('./public/index.html'),
57
+ minify: false
58
+ }),
59
+ ...plugins,
60
+ ]
61
+ }
62
+
63
+
@@ -1,32 +1,32 @@
1
- var webpack = require('webpack');
2
- var { merge } = require('webpack-merge');
3
- var config = require('../config');
4
- var path = require('path');
5
- var baseWebpackConfig = require('./webpack.base.conf');
6
- var ESLintPlugin = require('eslint-webpack-plugin');
7
- var options = require('../options');
8
- var { utils, processConfig } = options;
9
-
10
- var devConf = merge(baseWebpackConfig, {
11
- mode: 'development',
12
- devtool: false, // 是否生成 sourceMap 文件
13
- entry: [path.resolve(__dirname, '../dev-client.js')],
14
- output: {
15
- publicPath: config.dev.assetsPublicPath,
16
- },
17
- cache: config.dev.cachesDllDirectory,
18
- plugins: [
19
- new webpack.HotModuleReplacementPlugin(),
20
- new webpack.ProgressPlugin(),
21
- ]
22
- }, options.webpackConfig)
23
- if (config.dev.eslint) {
24
- devConf.plugins.push(new ESLintPlugin({
25
- context: utils.rootPath('./src'),
26
- exclude: processConfig.eslintExclude,
27
- failOnError: false,
28
- lintDirtyModulesOnly: true,
29
- extensions: ['ts', 'tsx'],
30
- }))
31
- }
32
- module.exports = devConf;
1
+ var webpack = require('webpack');
2
+ var { merge } = require('webpack-merge');
3
+ var config = require('../config');
4
+ var path = require('path');
5
+ var baseWebpackConfig = require('./webpack.base.conf');
6
+ var ESLintPlugin = require('eslint-webpack-plugin');
7
+ var options = require('../options');
8
+ var { utils, processConfig } = options;
9
+
10
+ var devConf = merge(baseWebpackConfig, {
11
+ mode: 'development',
12
+ devtool: false, // 是否生成 sourceMap 文件
13
+ entry: [path.resolve(__dirname, '../dev-client.js')],
14
+ output: {
15
+ publicPath: config.dev.assetsPublicPath,
16
+ },
17
+ cache: config.dev.cachesDllDirectory,
18
+ plugins: [
19
+ new webpack.HotModuleReplacementPlugin(),
20
+ new webpack.ProgressPlugin(),
21
+ ]
22
+ }, options.webpackConfig)
23
+ if (config.dev.eslint) {
24
+ devConf.plugins.push(new ESLintPlugin({
25
+ context: utils.rootPath('./src'),
26
+ exclude: processConfig.eslintExclude,
27
+ failOnError: false,
28
+ lintDirtyModulesOnly: true,
29
+ extensions: ['ts', 'tsx'],
30
+ }))
31
+ }
32
+ module.exports = devConf;
@@ -1,46 +1,46 @@
1
- require('shelljs/global');
2
- var webpack = require('webpack');
3
- var { merge } = require('webpack-merge');
4
- var config = require('./index');
5
- var path = require('path');
6
- var ora = require('ora');
7
-
8
- module.exports = function buildDll() {
9
- var dllConf = merge({
10
- devtool: false, // 是否生成 sourceMap 文件
11
- mode: 'production', //'production', ,development
12
- entry: config.build.assetsDllChunks,
13
- output: {
14
- path: config.dev.assetsDllOutPath,
15
- filename: '[name].js',
16
- library: {
17
- name: 'vendor_[fullhash]',
18
- type: 'umd'
19
- }
20
- },
21
- plugins: [
22
- new webpack.DllPlugin({
23
- context: path.resolve(__dirname, './'),
24
- name: 'vendor_[fullhash]',
25
- format:true,
26
- entryOnly: true,
27
- path: config.dev.assetsDllOutPath + '/[name]-manifest.json',
28
- }),
29
- ]
30
- })
31
- // webpack 打包
32
- rm('-rf', config.dev.assetsDllOutPath) // 删除 assetsRoot(dist) 目录下的文件及目录, 忽略不存在的目录
33
- var spinner = ora('building for dll...')
34
- spinner.start()
35
- webpack(dllConf, function (err, stats) {
36
- spinner.stop()
37
- if (err) throw err
38
- process.stdout.write(stats.toString({
39
- colors: true,
40
- modules: false,
41
- children: false,
42
- chunks: false,
43
- chunkModules: false
44
- }) + '\n')
45
- })
46
- }
1
+ require('shelljs/global');
2
+ var webpack = require('webpack');
3
+ var { merge } = require('webpack-merge');
4
+ var config = require('./index');
5
+ var path = require('path');
6
+ var ora = require('ora');
7
+
8
+ module.exports = function buildDll() {
9
+ var dllConf = merge({
10
+ devtool: false, // 是否生成 sourceMap 文件
11
+ mode: 'production', //'production', ,development
12
+ entry: config.build.assetsDllChunks,
13
+ output: {
14
+ path: config.dev.assetsDllOutPath,
15
+ filename: '[name].js',
16
+ library: {
17
+ name: 'vendor_[fullhash]',
18
+ type: 'umd'
19
+ }
20
+ },
21
+ plugins: [
22
+ new webpack.DllPlugin({
23
+ context: path.resolve(__dirname, './'),
24
+ name: 'vendor_[fullhash]',
25
+ format:true,
26
+ entryOnly: true,
27
+ path: config.dev.assetsDllOutPath + '/[name]-manifest.json',
28
+ }),
29
+ ]
30
+ })
31
+ // webpack 打包
32
+ rm('-rf', config.dev.assetsDllOutPath) // 删除 assetsRoot(dist) 目录下的文件及目录, 忽略不存在的目录
33
+ var spinner = ora('building for dll...')
34
+ spinner.start()
35
+ webpack(dllConf, function (err, stats) {
36
+ spinner.stop()
37
+ if (err) throw err
38
+ process.stdout.write(stats.toString({
39
+ colors: true,
40
+ modules: false,
41
+ children: false,
42
+ chunks: false,
43
+ chunkModules: false
44
+ }) + '\n')
45
+ })
46
+ }