@zohodesk/react-cli 0.0.1-exp.169.1 → 0.0.1-exp.175.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/.eslintrc.js +1 -0
- package/{CHANGELOG.md → CHANGELOG-fz.md} +0 -0
- package/Changelog.md +1019 -0
- package/README.md +17 -936
- package/docs/VariableConversion.md +678 -0
- package/lib/configs/jest.config.js +8 -10
- package/lib/configs/libAlias.js +10 -3
- package/lib/configs/resolvers.js +38 -0
- package/lib/configs/webpack.dev.config.js +19 -26
- package/lib/configs/webpack.docs.config.js +12 -19
- package/lib/configs/webpack.impact.config.js +13 -15
- package/lib/configs/webpack.prod.config.js +24 -28
- package/lib/constants.js +31 -0
- package/lib/jest/preProcessors/cssPreprocessor.js +14 -7
- package/lib/loaderUtils/getCSSLoaders.js +45 -8
- package/lib/pluginUtils/configHtmlWebpackPlugins.js +59 -0
- package/lib/pluginUtils/getDevPlugins.js +14 -34
- package/lib/pluginUtils/getProdPlugins.js +24 -42
- package/lib/postcss-plugins/{ExcludeRTLPlugin.js → ExcludePlugin.js} +1 -1
- package/lib/postcss-plugins/hoverActivePlugin.js +51 -27
- package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +37 -0
- package/lib/postcss-plugins/variableModificationPlugin/index.js +248 -0
- package/lib/postcss-plugins/variableModifier.js +244 -0
- package/lib/schemas/index.js +50 -10
- package/lib/servers/docsServerCore.js +13 -12
- package/lib/servers/getCliPath.js +1 -1
- package/lib/servers/httpsOptions.js +40 -9
- package/lib/servers/nowatchserver.js +12 -11
- package/lib/servers/server.js +14 -13
- package/lib/utils/getOptions.js +42 -14
- package/package.json +5 -34
- package/postpublish.js +6 -4
- package/templates/docs/css/style.css +1 -1
- package/templates/docs/index.html +9 -1
- package/cert/Tsicsezwild-22-23.crt +0 -37
- package/cert/Tsicsezwild-22-23.key +0 -27
package/lib/configs/libAlias.js
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.libAlias = void 0;
|
6
|
+
exports.libAlias = exports.jestModuleNameMapper = void 0;
|
7
7
|
// the reason for alias at the time was code tree shaking
|
8
8
|
// tree shaking was most compactable with ES module system
|
9
9
|
// FIXME: But there is a posiblity when these package does not have lib,
|
@@ -27,5 +27,12 @@ const libAlias = {
|
|
27
27
|
'@zohodesk/timetracker/lib': '@zohodesk/timetracker/es',
|
28
28
|
'@zohodesk/variables/lib': '@zohodesk/variables/es',
|
29
29
|
'@zohodesk/virtualizer/lib': '@zohodesk/virtualizer/es'
|
30
|
-
};
|
31
|
-
|
30
|
+
}; // '^@root(.*)$': '<rootDir>/src$1',
|
31
|
+
// '^@components(.*)$': '<rootDir>/src/components$1',
|
32
|
+
|
33
|
+
exports.libAlias = libAlias;
|
34
|
+
const jestModuleNameMapper = Object.keys(libAlias).reduce((previousValue, key) => {
|
35
|
+
previousValue[`^${key}(.*)$`] = `${libAlias[key]}$1`;
|
36
|
+
return previousValue;
|
37
|
+
}, {});
|
38
|
+
exports.jestModuleNameMapper = jestModuleNameMapper;
|
@@ -0,0 +1,38 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.loaderResolver = loaderResolver;
|
7
|
+
exports.moduleResolver = moduleResolver;
|
8
|
+
|
9
|
+
var _constants = require("../constants");
|
10
|
+
|
11
|
+
var _libAlias = require("./libAlias");
|
12
|
+
|
13
|
+
function moduleResolver(options) {
|
14
|
+
const {
|
15
|
+
moduleResolvePath,
|
16
|
+
disableES5Transpile
|
17
|
+
} = options.app;
|
18
|
+
const nodeModulesPath = moduleResolvePath ? require(require.resolve(moduleResolvePath, {
|
19
|
+
paths: [options.cwd]
|
20
|
+
})).nodeModulesPath : ''; // const {unstableDepsInverse} = options;
|
21
|
+
|
22
|
+
return {
|
23
|
+
modules: [nodeModulesPath, 'node_modules'].filter(Boolean),
|
24
|
+
alias: disableES5Transpile ? _libAlias.libAlias : {} // alias: { ...libAlias, ...clientDependenies }
|
25
|
+
|
26
|
+
};
|
27
|
+
}
|
28
|
+
|
29
|
+
function loaderResolver(options) {
|
30
|
+
// const unstableDepsInverse = false;
|
31
|
+
const {
|
32
|
+
unstableDepsInverse
|
33
|
+
} = options;
|
34
|
+
return {
|
35
|
+
modules: unstableDepsInverse ? ['node_modules', _constants.cliNodemodulesPath] : [_constants.cliNodemodulesPath, 'node_modules'] // alias: libAlias
|
36
|
+
|
37
|
+
};
|
38
|
+
}
|
@@ -10,24 +10,23 @@ var _pluginUtils = require("../pluginUtils");
|
|
10
10
|
|
11
11
|
var _loaderUtils = require("../loaderUtils");
|
12
12
|
|
13
|
-
var _libAlias = require("./libAlias");
|
14
|
-
|
15
13
|
var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
|
16
14
|
|
15
|
+
var _resolvers = require("./resolvers");
|
16
|
+
|
17
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
unstableDepsInverse,
|
19
|
+
const options = (0, _utils.getOptions)();
|
20
|
+
const {
|
22
21
|
app: {
|
23
22
|
folder,
|
24
23
|
context,
|
25
24
|
server,
|
26
25
|
outputFolder,
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
plugins,
|
27
|
+
exclude,
|
28
|
+
mediaQueryHoverActiveString,
|
29
|
+
cssVariableReplacementConfig,
|
31
30
|
cssUniqueness,
|
32
31
|
seperateCssModules,
|
33
32
|
changeRuntimeChunkChar,
|
@@ -36,19 +35,18 @@ let {
|
|
36
35
|
cssHashSelectors,
|
37
36
|
classNamePrefix,
|
38
37
|
selectorReplace,
|
39
|
-
disableES5Transpile,
|
40
38
|
devConsoleExculde,
|
41
39
|
sourcemap,
|
42
40
|
crossorigin
|
43
41
|
}
|
44
42
|
} = options;
|
45
|
-
|
43
|
+
const {
|
46
44
|
disableContextURL
|
47
45
|
} = server;
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
46
|
+
const appPath = process.cwd();
|
47
|
+
const contextURL = disableContextURL ? '' : context;
|
48
|
+
const serverUrl = (0, _utils.getServerURL)(server, 'https');
|
49
|
+
const output = {
|
52
50
|
path: _path.default.join(appPath, outputFolder),
|
53
51
|
filename: 'js/[name].js',
|
54
52
|
chunkFilename: 'js/[name].js',
|
@@ -87,9 +85,9 @@ module.exports = {
|
|
87
85
|
test: /\.js$/,
|
88
86
|
use: (0, _loaderUtils.getDevJsLoaders)(options),
|
89
87
|
include: module => {
|
90
|
-
|
88
|
+
const srcPath = _path.default.join(appPath, folder);
|
91
89
|
|
92
|
-
|
90
|
+
const depsPath = _path.default.join(appPath, 'node_modules', '@zohodesk');
|
93
91
|
|
94
92
|
if (module.includes(srcPath) || devConsoleExculde && module.includes(depsPath)) {
|
95
93
|
return true;
|
@@ -100,10 +98,10 @@ module.exports = {
|
|
100
98
|
}, seperateCssModules ? {
|
101
99
|
test: /\.css$/,
|
102
100
|
exclude: /\.module\.css$/,
|
103
|
-
use: (0, _loaderUtils.getCSSLoaders)(
|
101
|
+
use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, '[local]', false, null)
|
104
102
|
} : null, {
|
105
103
|
test: seperateCssModules ? /\.module\.css$/ : /(\.module)?\.css$/,
|
106
|
-
use: (0, _loaderUtils.getCSSLoaders)(
|
104
|
+
use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, null, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix)
|
107
105
|
}, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), {
|
108
106
|
test: /\.tmpl$/,
|
109
107
|
use: [{
|
@@ -126,11 +124,6 @@ module.exports = {
|
|
126
124
|
externals: {
|
127
125
|
ZC: '$ZC'
|
128
126
|
},
|
129
|
-
resolve:
|
130
|
-
|
131
|
-
alias: disableES5Transpile ? _libAlias.libAlias : {}
|
132
|
-
},
|
133
|
-
resolveLoader: {
|
134
|
-
modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
|
135
|
-
}
|
127
|
+
resolve: (0, _resolvers.moduleResolver)(options),
|
128
|
+
resolveLoader: (0, _resolvers.loaderResolver)(options)
|
136
129
|
};
|
@@ -8,24 +8,22 @@ var _pluginUtils = require("../pluginUtils");
|
|
8
8
|
|
9
9
|
var _loaderUtils = require("../loaderUtils");
|
10
10
|
|
11
|
-
var _libAlias = require("./libAlias");
|
12
|
-
|
13
11
|
var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
|
14
12
|
|
13
|
+
var _resolvers = require("./resolvers");
|
14
|
+
|
15
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
unstableDepsInverse,
|
17
|
+
const options = (0, _utils.getOptions)();
|
18
|
+
const {
|
20
19
|
docs: {
|
21
20
|
componentFolder,
|
22
|
-
disableES5Transpile,
|
23
21
|
enableChunkHash,
|
24
22
|
cssUniqueness,
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
plugins,
|
24
|
+
exclude,
|
25
|
+
mediaQueryHoverActiveString,
|
26
|
+
cssVariableReplacementConfig,
|
29
27
|
cssHashSelectors,
|
30
28
|
classNamePrefix
|
31
29
|
},
|
@@ -33,7 +31,7 @@ let {
|
|
33
31
|
folder
|
34
32
|
}
|
35
33
|
} = options;
|
36
|
-
|
34
|
+
const appPath = process.cwd();
|
37
35
|
const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
|
38
36
|
|
39
37
|
module.exports = isSSTest => ({
|
@@ -75,7 +73,7 @@ module.exports = isSSTest => ({
|
|
75
73
|
exclude: /node_modules/
|
76
74
|
}, {
|
77
75
|
test: /(\.module)?\.css$/,
|
78
|
-
use: (0, _loaderUtils.getCSSLoaders)(
|
76
|
+
use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
|
79
77
|
}, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), {
|
80
78
|
test: /\.html$/,
|
81
79
|
use: {
|
@@ -104,11 +102,6 @@ module.exports = isSSTest => ({
|
|
104
102
|
externals: {
|
105
103
|
ZC: '$ZC'
|
106
104
|
},
|
107
|
-
resolve:
|
108
|
-
|
109
|
-
alias: disableES5Transpile ? _libAlias.libAlias : {}
|
110
|
-
},
|
111
|
-
resolveLoader: {
|
112
|
-
modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
|
113
|
-
}
|
105
|
+
resolve: (0, _resolvers.moduleResolver)(options),
|
106
|
+
resolveLoader: (0, _resolvers.loaderResolver)(options)
|
114
107
|
});
|
@@ -10,17 +10,19 @@ var _getLibraryImactPlugins = _interopRequireDefault(require("../pluginUtils/get
|
|
10
10
|
|
11
11
|
var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
|
12
12
|
|
13
|
+
var _resolvers = require("./resolvers");
|
14
|
+
|
13
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
+
const options = (0, _utils.getOptions)();
|
18
|
+
const {
|
17
19
|
docs: {
|
18
20
|
componentFolder,
|
19
21
|
cssUniqueness,
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
22
|
+
plugins,
|
23
|
+
exclude,
|
24
|
+
mediaQueryHoverActiveString,
|
25
|
+
cssVariableReplacementConfig,
|
24
26
|
cssHashSelectors,
|
25
27
|
enableChunkHash,
|
26
28
|
classNamePrefix
|
@@ -29,7 +31,7 @@ let {
|
|
29
31
|
folder
|
30
32
|
}
|
31
33
|
} = options;
|
32
|
-
|
34
|
+
const appPath = process.cwd();
|
33
35
|
const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
|
34
36
|
module.exports = {
|
35
37
|
entry: {
|
@@ -38,6 +40,7 @@ module.exports = {
|
|
38
40
|
},
|
39
41
|
devtool: 'none',
|
40
42
|
mode: 'development',
|
43
|
+
stats: 'errors-only',
|
41
44
|
output: {
|
42
45
|
path: _path.default.join(appPath, 'build'),
|
43
46
|
filename: 'js/[name].js',
|
@@ -70,7 +73,7 @@ module.exports = {
|
|
70
73
|
exclude: /node_modules/
|
71
74
|
}, {
|
72
75
|
test: /(\.module)?\.css$/,
|
73
|
-
use: (0, _loaderUtils.getCSSLoaders)(
|
76
|
+
use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
|
74
77
|
}, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), {
|
75
78
|
test: /\.html$/,
|
76
79
|
use: {
|
@@ -100,11 +103,6 @@ module.exports = {
|
|
100
103
|
externals: {
|
101
104
|
ZC: '$ZC'
|
102
105
|
},
|
103
|
-
resolve:
|
104
|
-
|
105
|
-
},
|
106
|
-
resolveLoader: {
|
107
|
-
modules: [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
|
108
|
-
},
|
109
|
-
stats: 'errors-only'
|
106
|
+
resolve: (0, _resolvers.moduleResolver)(options),
|
107
|
+
resolveLoader: (0, _resolvers.loaderResolver)(options)
|
110
108
|
};
|
@@ -10,29 +10,27 @@ var _pluginUtils = require("../pluginUtils");
|
|
10
10
|
|
11
11
|
var _loaderUtils = require("../loaderUtils");
|
12
12
|
|
13
|
-
var _libAlias = require("./libAlias");
|
14
|
-
|
15
13
|
var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
|
16
14
|
|
15
|
+
var _resolvers = require("./resolvers");
|
16
|
+
|
17
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
18
18
|
|
19
19
|
// import TerserPlugin from 'terser-webpack-plugin';
|
20
|
-
|
21
|
-
|
22
|
-
unstableDepsInverse,
|
20
|
+
const options = (0, _utils.getOptions)();
|
21
|
+
const {
|
23
22
|
app: {
|
24
23
|
folder,
|
25
24
|
context,
|
26
|
-
enableChunkHash,
|
27
25
|
outputFolder,
|
28
26
|
disableES5Transpile,
|
29
27
|
removeAttribute,
|
30
28
|
enableSMap,
|
31
29
|
server,
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
plugins,
|
31
|
+
exclude,
|
32
|
+
mediaQueryHoverActiveString,
|
33
|
+
cssVariableReplacementConfig,
|
36
34
|
cssUniqueness,
|
37
35
|
server: {
|
38
36
|
mode
|
@@ -47,10 +45,13 @@ let {
|
|
47
45
|
crossorigin
|
48
46
|
}
|
49
47
|
} = options;
|
50
|
-
let
|
51
|
-
|
48
|
+
let {
|
49
|
+
enableChunkHash
|
50
|
+
} = options.app;
|
51
|
+
const appPath = process.cwd();
|
52
|
+
const isDevelopment = mode === 'prod' || mode === 'dev' || mode === 'dev-no-warn';
|
52
53
|
enableChunkHash = !isDevelopment && enableChunkHash;
|
53
|
-
|
54
|
+
const output = {
|
54
55
|
path: _path.default.resolve(appPath, outputFolder),
|
55
56
|
filename: enableChunkHash ? 'js/[name].[chunkhash:20]_.js' : 'js/[name]_.js',
|
56
57
|
chunkFilename: enableChunkHash ? 'js/[name].[chunkhash:20]_.js' : 'js/[name]_.js',
|
@@ -63,15 +64,15 @@ if (crossorigin) {
|
|
63
64
|
}
|
64
65
|
|
65
66
|
if (isDevelopment) {
|
66
|
-
|
67
|
+
const {
|
67
68
|
disableContextURL
|
68
69
|
} = server;
|
69
|
-
|
70
|
-
|
70
|
+
const contextURL = disableContextURL ? '' : context;
|
71
|
+
const serverUrl = (0, _utils.getServerURL)(server, 'https');
|
71
72
|
output.publicPath = `${[serverUrl, contextURL].filter(a => a).join('/')}/`;
|
72
73
|
}
|
73
74
|
|
74
|
-
|
75
|
+
const shouldRemovePropTypes = !isDevelopment && removePropTypes;
|
75
76
|
module.exports = {
|
76
77
|
entry: (0, _common.getEntries)(options, 'production'),
|
77
78
|
devtool: isDevelopment ? 'cheap-module-source-map' : enableSMap ? 'hidden-source-map' : 'none',
|
@@ -135,9 +136,9 @@ module.exports = {
|
|
135
136
|
}].filter(Boolean),
|
136
137
|
// include: path.join(appPath, folder)
|
137
138
|
include: module => {
|
138
|
-
|
139
|
+
const srcPath = _path.default.join(appPath, folder);
|
139
140
|
|
140
|
-
|
141
|
+
const depsPath = _path.default.join(appPath, 'node_modules', '@zohodesk');
|
141
142
|
|
142
143
|
if (module.includes(srcPath) || devConsoleExculde && module.includes(depsPath)) {
|
143
144
|
return true;
|
@@ -148,10 +149,10 @@ module.exports = {
|
|
148
149
|
}, seperateCssModules ? {
|
149
150
|
test: /\.css$/,
|
150
151
|
exclude: /\.module\.css$/,
|
151
|
-
use: (0, _loaderUtils.getCSSLoaders)(
|
152
|
+
use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, cssVariableReplacementConfig, mediaQueryHoverActiveString, '[local]', false, null)
|
152
153
|
} : null, {
|
153
154
|
test: seperateCssModules ? /\.module\.css$/ : /\.css$/,
|
154
|
-
use: (0, _loaderUtils.getCSSLoaders)(
|
155
|
+
use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, false, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix)
|
155
156
|
}, {
|
156
157
|
test: /\.jpe?g$|\.gif$|\.png$/,
|
157
158
|
use: [{
|
@@ -212,11 +213,6 @@ module.exports = {
|
|
212
213
|
externals: {
|
213
214
|
ZC: '$ZC'
|
214
215
|
},
|
215
|
-
resolve:
|
216
|
-
|
217
|
-
alias: disableES5Transpile ? _libAlias.libAlias : {}
|
218
|
-
},
|
219
|
-
resolveLoader: {
|
220
|
-
modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
|
221
|
-
}
|
216
|
+
resolve: (0, _resolvers.moduleResolver)(options),
|
217
|
+
resolveLoader: (0, _resolvers.loaderResolver)(options)
|
222
218
|
};
|
package/lib/constants.js
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.cliRootPath = exports.cliNodemodulesPath = exports.appPath = exports.CONFIG_ROOT = exports.BASE_CONFIG_KEY = void 0;
|
7
|
+
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
9
|
+
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
|
+
|
12
|
+
const BASE_CONFIG_KEY = 'react-cli';
|
13
|
+
exports.BASE_CONFIG_KEY = BASE_CONFIG_KEY;
|
14
|
+
|
15
|
+
const cliRootPath = _path.default.resolve(__dirname, '..');
|
16
|
+
|
17
|
+
exports.cliRootPath = cliRootPath;
|
18
|
+
const CONFIG_ROOT = 'react-cli';
|
19
|
+
exports.CONFIG_ROOT = CONFIG_ROOT;
|
20
|
+
|
21
|
+
const cliNodemodulesPath = _path.default.resolve(cliRootPath, 'node_modules'); // export const babelrcPath = join(cliRootPath, '.babelrc');
|
22
|
+
|
23
|
+
|
24
|
+
exports.cliNodemodulesPath = cliNodemodulesPath;
|
25
|
+
const appPath = process.cwd(); // export const appInitialHTMLTemplatePath = path.join(
|
26
|
+
// process.cwd(),
|
27
|
+
// 'src',
|
28
|
+
// 'index.html'
|
29
|
+
// );
|
30
|
+
|
31
|
+
exports.appPath = appPath;
|
@@ -6,23 +6,30 @@ var _postcssHashClassname = _interopRequireDefault(require("postcss-hash-classna
|
|
6
6
|
|
7
7
|
var _fs = _interopRequireDefault(require("fs"));
|
8
8
|
|
9
|
+
var _utils = require("../../utils");
|
10
|
+
|
9
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
10
12
|
|
11
13
|
let count = 0;
|
14
|
+
const options = (0, _utils.getOptions)();
|
15
|
+
const {
|
16
|
+
classnameFormat
|
17
|
+
} = options.test;
|
12
18
|
module.exports = {
|
13
19
|
process: function (src) {
|
14
20
|
count++;
|
15
|
-
|
21
|
+
const opts = {
|
16
22
|
hashType: 'md5',
|
17
|
-
digestType: 'base32'
|
23
|
+
digestType: 'base32',
|
24
|
+
maxLength: 6,
|
25
|
+
type: '.json',
|
26
|
+
classnameFormat: classnameFormat,
|
27
|
+
outputName: `jsonFile_test_${count}`
|
18
28
|
};
|
19
|
-
|
20
|
-
opts.type = '.json';
|
21
|
-
opts.outputName = `jsonFile_test_${count}`;
|
22
|
-
let processor = (0, _postcss.default)([(0, _postcssHashClassname.default)(opts)]);
|
29
|
+
const processor = (0, _postcss.default)([(0, _postcssHashClassname.default)(opts)]);
|
23
30
|
processor.process(src).css;
|
24
31
|
|
25
|
-
|
32
|
+
const jsonMap = _fs.default.readFileSync(`jsonFile_test_${count}.json`, 'UTF-8');
|
26
33
|
|
27
34
|
_fs.default.unlinkSync(`jsonFile_test_${count}.json`);
|
28
35
|
|
@@ -13,10 +13,27 @@ var _utils = require("../utils");
|
|
13
13
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
15
|
|
16
|
-
|
17
|
-
let isWin = process.platform === 'win32';
|
16
|
+
const fs = require('fs');
|
18
17
|
|
19
|
-
|
18
|
+
const options = (0, _utils.getOptions)();
|
19
|
+
const isWin = process.platform === 'win32';
|
20
|
+
|
21
|
+
function windowsModification(array) {
|
22
|
+
return isWin ? array.map(r => r.replace(/\//g, '\\')) : array;
|
23
|
+
}
|
24
|
+
|
25
|
+
function excludeEmptyCheckPlugin({
|
26
|
+
enable,
|
27
|
+
ignore,
|
28
|
+
plugins
|
29
|
+
}) {
|
30
|
+
return enable ? ignore.length === 0 ? plugins : [require('../postcss-plugins/ExcludePlugin')({
|
31
|
+
ignore,
|
32
|
+
plugins
|
33
|
+
})] : [];
|
34
|
+
}
|
35
|
+
|
36
|
+
const getCSSLoaders = (plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, classNameBlob, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix) => {
|
20
37
|
const {
|
21
38
|
devCssFileBountry
|
22
39
|
} = options.app;
|
@@ -26,8 +43,11 @@ let getCSSLoaders = (hasRTL, combinerMq, rtlExclude, hoverActive, classNameBlob,
|
|
26
43
|
const {
|
27
44
|
cssSelectorZipPath
|
28
45
|
} = options.impactService;
|
29
|
-
|
30
|
-
|
46
|
+
const rtlExcludeLocal = windowsModification(exclude.rtl);
|
47
|
+
const hoverActiveExcludeLocal = windowsModification(exclude.hoverActive);
|
48
|
+
const combinerMediaQueryExcludeLocal = windowsModification(exclude.combinerMediaQuery);
|
49
|
+
const cssVariableReplacementExcludeLocal = windowsModification(exclude.cssVariableReplacement);
|
50
|
+
const cssLoaderOptions = {
|
31
51
|
// importLoaders: hasRTL||hoverActive ? 1 : 0,
|
32
52
|
importLoaders: 1,
|
33
53
|
modules: {},
|
@@ -40,7 +60,13 @@ let getCSSLoaders = (hasRTL, combinerMq, rtlExclude, hoverActive, classNameBlob,
|
|
40
60
|
cssLoaderOptions.modules.getLocalIdent = (0, _cssClassNameGenerate.default)(cssUniqueness, cssHashSelectors, classNamePrefix);
|
41
61
|
}
|
42
62
|
|
43
|
-
const postcssPlugins = [valueReplacer && require('../postcss-plugins/ValueReplacer')(valueReplacer), selectorReplace && require('postcss-selector-replace')(selectorReplace),
|
63
|
+
const postcssPlugins = [valueReplacer && require('../postcss-plugins/ValueReplacer')(valueReplacer), selectorReplace && require('postcss-selector-replace')(selectorReplace), // ...excludeEmptyCheckPlugin({
|
64
|
+
// enable: true,
|
65
|
+
// ignore: [],
|
66
|
+
// plugins: [require('../postcss-plugins/variablePropertiesCollector').default()]
|
67
|
+
// }),
|
68
|
+
...excludeEmptyCheckPlugin({
|
69
|
+
enable: plugins.hasRTL,
|
44
70
|
ignore: rtlExcludeLocal,
|
45
71
|
plugins: [require('@zohodesk/postcss-rtl')({
|
46
72
|
addPrefixToSelector: function addPrefixToSelector(selector, prefix) {
|
@@ -51,8 +77,19 @@ let getCSSLoaders = (hasRTL, combinerMq, rtlExclude, hoverActive, classNameBlob,
|
|
51
77
|
return `${prefix} ${selector}`; // Make selectors like [dir=rtl] > .selector
|
52
78
|
}
|
53
79
|
})]
|
54
|
-
}),
|
55
|
-
|
80
|
+
}), ...excludeEmptyCheckPlugin({
|
81
|
+
enable: plugins.combinerMediaQuery,
|
82
|
+
ignore: combinerMediaQueryExcludeLocal,
|
83
|
+
plugins: [require('postcss-combine-media-query')]
|
84
|
+
}), ...excludeEmptyCheckPlugin({
|
85
|
+
enable: plugins.hoverActive,
|
86
|
+
ignore: hoverActiveExcludeLocal,
|
87
|
+
plugins: [require('../postcss-plugins/hoverActivePlugin')(mediaQueryHoverActiveString)]
|
88
|
+
}), ...excludeEmptyCheckPlugin({
|
89
|
+
enable: plugins.cssVariableReplacement,
|
90
|
+
ignore: cssVariableReplacementExcludeLocal,
|
91
|
+
plugins: [fs.existsSync(cssVariableReplacementConfig) && require('../postcss-plugins/variableModificationPlugin/index')(cssVariableReplacementConfig)]
|
92
|
+
})].filter(Boolean);
|
56
93
|
return [cssSelectorZipPath && {
|
57
94
|
loader: require.resolve('../loaders/selectorMappingLoader')
|
58
95
|
}, {
|
@@ -0,0 +1,59 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.configHtmlWebpackPlugins = configHtmlWebpackPlugins;
|
7
|
+
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
9
|
+
|
10
|
+
var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
|
11
|
+
|
12
|
+
var _htmlWebpackInjectAttributesPlugin = _interopRequireDefault(require("html-webpack-inject-attributes-plugin"));
|
13
|
+
|
14
|
+
var _common = require("../common");
|
15
|
+
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
|
+
|
18
|
+
const defaultHTMLMiniFyOption = {
|
19
|
+
collapseWhitespace: true,
|
20
|
+
minifyCSS: true,
|
21
|
+
minifyJS: true,
|
22
|
+
keepClosingSlash: true,
|
23
|
+
removeComments: false,
|
24
|
+
removeRedundantAttributes: true,
|
25
|
+
removeScriptTypeAttributes: true,
|
26
|
+
removeStyleLinkTypeAttributes: true,
|
27
|
+
useShortDoctype: true
|
28
|
+
};
|
29
|
+
|
30
|
+
function configHtmlWebpackPlugins(plugins, {
|
31
|
+
enableChunkHash = false,
|
32
|
+
folder,
|
33
|
+
inject,
|
34
|
+
crossorigin,
|
35
|
+
hasEFC,
|
36
|
+
minify: minifyHtmlOptions = false
|
37
|
+
}) {
|
38
|
+
const optionsHtmlWebpack = {
|
39
|
+
chunksSortMode: 'none',
|
40
|
+
filename: enableChunkHash ? 'index.[templatehash:20].html' : 'index.html',
|
41
|
+
template: _path.default.join(process.cwd(), folder, 'index.html'),
|
42
|
+
minify: minifyHtmlOptions === true ? defaultHTMLMiniFyOption : minifyHtmlOptions === null ? false : minifyHtmlOptions,
|
43
|
+
// : typeof minifyHtmlOptions === 'object'
|
44
|
+
// ? minifyHtmlOptions
|
45
|
+
// : minifyHtmlOptions,,
|
46
|
+
templateParameters: _common.templateParameters,
|
47
|
+
scriptLoading: 'defer',
|
48
|
+
inject: inject
|
49
|
+
};
|
50
|
+
|
51
|
+
if (hasEFC) {
|
52
|
+
optionsHtmlWebpack.excludeChunks = ['efc', 'widget'];
|
53
|
+
}
|
54
|
+
|
55
|
+
plugins.push(new _htmlWebpackPlugin.default(optionsHtmlWebpack));
|
56
|
+
crossorigin && plugins.push(new _htmlWebpackInjectAttributesPlugin.default({
|
57
|
+
crossorigin: 'anonymous'
|
58
|
+
}));
|
59
|
+
}
|