@zohodesk/react-cli 1.0.1-exp.1 → 1.0.2-exp.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.
- package/README.md +13 -0
- package/docs/SelectorWeight.md +3 -0
- package/docs/VariableConversion.md +6 -1
- package/lib/configs/webpack.dev.config.js +6 -0
- package/lib/configs/webpack.docs.config.js +4 -0
- package/lib/configs/webpack.impact.config.js +4 -0
- package/lib/configs/webpack.prod.config.js +6 -0
- package/lib/loaderUtils/getCSSLoaders.js +79 -50
- package/lib/loaderUtils/tests/windowsModification.test.js +10 -0
- package/lib/loaderUtils/windowsModification.js +6 -1
- package/lib/loaders/composeLoader.js +175 -0
- package/lib/pluginUtils/getDevPlugins.js +13 -2
- package/lib/pluginUtils/getProdPlugins.js +1 -1
- package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
- package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
- package/lib/plugins/{UglifyCSSPlugin.js → MinifyPlugin.js} +3 -3
- package/lib/plugins/SelectorPlugin.js +60 -72
- package/lib/plugins/VariableConversionCollector.js +38 -29
- package/lib/plugins/index.js +15 -7
- package/lib/plugins/utils/classHandling.js +2 -10
- package/lib/plugins/utils/fileHandling.js +70 -100
- package/lib/plugins/utils/tests/fileHandling.test.js +30 -0
- package/lib/postcss-plugins/EmptyPlugin.js +8 -0
- package/lib/postcss-plugins/ExcludePlugin.js +1 -1
- package/lib/postcss-plugins/SelectorReplace.js +80 -0
- package/lib/postcss-plugins/ValueReplacer.js +2 -13
- package/lib/postcss-plugins/__test__/selectorReplace.test.js +28 -0
- package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +0 -1
- package/lib/postcss-plugins/variableModificationPlugin/index.js +14 -32
- package/lib/postcss-plugins/variableModifier.js +1 -1
- package/lib/schemas/index.js +34 -3
- package/lib/servers/server.js +2 -2
- package/lib/utils/cssClassNameGenerate.js +35 -7
- package/package.json +3 -2
- package/lib/plugins/composeCommonPlugin.js +0 -30
- package/lib/plugins/cssoPlugin.js +0 -37
- package/lib/plugins/utils/checkPattern.js +0 -57
@@ -9,77 +9,55 @@ var _postcss = _interopRequireDefault(require("postcss"));
|
|
9
9
|
|
10
10
|
var _fs = _interopRequireDefault(require("fs"));
|
11
11
|
|
12
|
+
var _classHandling = require("./utils/classHandling");
|
13
|
+
|
14
|
+
var _fileHandling = require("./utils/fileHandling");
|
15
|
+
|
12
16
|
var _windowsModification = require("../loaderUtils/windowsModification");
|
13
17
|
|
14
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
19
|
|
16
|
-
function
|
17
|
-
let keyMatch = undefined;
|
18
|
-
Object.keys(data).forEach(key => {
|
19
|
-
if (filename.includes(key)) {
|
20
|
-
keyMatch = key;
|
21
|
-
}
|
22
|
-
});
|
23
|
-
return keyMatch;
|
24
|
-
}
|
25
|
-
|
26
|
-
function rootConvertor(rootOriginal, defaultSelector, data, filename, excludeStrings) {
|
20
|
+
function selectorWeightPrefixAdder(rootOriginal, selector, excludeStrings) {
|
27
21
|
rootOriginal.walkRules((rule, index) => {
|
28
22
|
const prevNode = rootOriginal.nodes[index - 1];
|
29
23
|
|
30
|
-
if (
|
24
|
+
if ((0, _classHandling.hasPrevNodeIgnore)(index, prevNode, 'updateselector:ignore')) {
|
31
25
|
return;
|
32
26
|
}
|
33
27
|
|
34
|
-
if (
|
35
|
-
|
36
|
-
return;
|
37
|
-
}
|
28
|
+
if (!(0, _classHandling.isInsideMediaQuery)(rule)) {
|
29
|
+
return;
|
38
30
|
}
|
39
31
|
|
40
|
-
|
41
|
-
|
42
|
-
if (excludeStrings.includes(
|
32
|
+
const selectorArr = rule.selector.split(',');
|
33
|
+
selectorArr.forEach((singleSelectorStr, index) => {
|
34
|
+
if (excludeStrings.includes(singleSelectorStr.trim())) {
|
43
35
|
return;
|
44
36
|
}
|
45
37
|
|
46
|
-
if (
|
47
|
-
if (
|
38
|
+
if (singleSelectorStr.includes(']')) {
|
39
|
+
if (singleSelectorStr.slice(singleSelectorStr.lastIndexOf(']') + 2).trim() === '') {
|
48
40
|
return;
|
49
|
-
}
|
50
|
-
// rule.slice(rule.lastIndexOf(']') + 2).trim(),
|
51
|
-
// rule.slice(rule.lastIndexOf(']') + 2).trim() !== ''
|
52
|
-
// );
|
53
|
-
|
54
|
-
|
55
|
-
ruleArr[index] = `${ruleStr.slice(0, ruleStr.lastIndexOf(']') + 1).trim()} ${defaultSelector}${ruleStr.slice(ruleStr.lastIndexOf(']') + 2).trim()}`; // console.log(ruleArr[index]);
|
41
|
+
}
|
56
42
|
|
43
|
+
selectorArr[index] = `${singleSelectorStr.slice(0, singleSelectorStr.lastIndexOf(']') + 1).trim()} ${selector}${singleSelectorStr.slice(singleSelectorStr.lastIndexOf(']') + 2).trim()}`;
|
57
44
|
return;
|
58
45
|
}
|
59
46
|
|
60
|
-
|
61
|
-
ruleArr[index] = data[keyMatch] ? `${data[keyMatch].defaultSelector}${ruleStr}` : `${defaultSelector}${ruleStr}`;
|
47
|
+
selectorArr[index] = `${selector}${singleSelectorStr}`;
|
62
48
|
});
|
63
|
-
rule.selector =
|
49
|
+
rule.selector = selectorArr.join(',\n');
|
64
50
|
});
|
65
51
|
return rootOriginal;
|
66
52
|
}
|
67
53
|
|
68
|
-
function ignoreFile(excludeArr, filename) {
|
69
|
-
let ignore = false;
|
70
|
-
excludeArr.forEach(exclStr => {
|
71
|
-
if (filename.includes(exclStr)) {
|
72
|
-
ignore = true;
|
73
|
-
}
|
74
|
-
});
|
75
|
-
return ignore;
|
76
|
-
}
|
77
|
-
|
78
54
|
class SelectorPlugin {
|
79
55
|
constructor(options = {}) {
|
80
56
|
this.optimize = options.optimize;
|
81
57
|
this.selectorWeightConfig = options.selectorWeightConfig;
|
82
58
|
this.exclude = options.exclude;
|
59
|
+
this.patterns = options.patterns;
|
60
|
+
this.rootDir = options.patternsRootDir;
|
83
61
|
}
|
84
62
|
|
85
63
|
apply(compiler) {
|
@@ -94,44 +72,54 @@ class SelectorPlugin {
|
|
94
72
|
const data = JSON.parse(rawdata);
|
95
73
|
this.exclude = (0, _windowsModification.windowsModification)(this.exclude);
|
96
74
|
compiler.hooks.compilation.tap('selector-weight-rewrite', compilation => {
|
97
|
-
// compilation.hooks.optimizeChunkAssets.tapAsync(
|
98
|
-
// 'selector-weight-rewrite',
|
99
|
-
// (chunks, callback) => {
|
100
|
-
// chunks.forEach(chunk => {
|
101
|
-
// chunk.files.filter(isCss).forEach(chunkFilename => {
|
102
|
-
// const asset = compilation.assets[chunkFilename];
|
103
|
-
// const sourceStr = asset.source();
|
104
|
-
// const rootOriginal = postcss.parse(sourceStr);
|
105
|
-
// compilation.assets[chunkFilename] = new RawSource(
|
106
|
-
// rootConvertor(
|
107
|
-
// rootOriginal,
|
108
|
-
// defaultSelector,
|
109
|
-
// data,
|
110
|
-
// chunkFilename,
|
111
|
-
// excludeStrings
|
112
|
-
// ).toString()
|
113
|
-
// );
|
114
|
-
// });
|
115
|
-
// });
|
116
|
-
// callback();
|
117
|
-
// }
|
118
|
-
// );
|
119
75
|
compilation.hooks.optimizeModules.tap('selector-weight-rewrite', modules => {
|
120
76
|
const mods = modules.filter(x => x.type.includes('css'));
|
121
77
|
mods.forEach(module => {
|
122
78
|
const rootOriginal = _postcss.default.parse(module.content);
|
123
79
|
|
124
80
|
const filename = module.issuer.resource;
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
81
|
+
/*
|
82
|
+
input :
|
83
|
+
filename : 'D:/MyWork/..../desk_client_app/supportapp/src/components/Avatar/Avatar.module.css,
|
84
|
+
|
85
|
+
patterns.cssVariableReplacement:
|
86
|
+
// include src folder, include deskapp folder, exclude node modules
|
87
|
+
"selectorWeight": [
|
88
|
+
"src",
|
89
|
+
"deskapp",
|
90
|
+
"!node_modules"
|
91
|
+
]
|
92
|
+
rootDir : patternsRootDir : 'supportapp'
|
93
|
+
|
94
|
+
output :
|
95
|
+
true or false
|
96
|
+
*/
|
97
|
+
|
98
|
+
if (!(0, _fileHandling.isFileNameMatchingPluginPattern)({
|
99
|
+
filename,
|
100
|
+
filterArr: this.patterns.selectorWeight,
|
101
|
+
rootDir: this.rootDir
|
102
|
+
})) {
|
103
|
+
return;
|
134
104
|
}
|
105
|
+
/*
|
106
|
+
|
107
|
+
filename : Deskapp.module.css ?
|
108
|
+
data :
|
109
|
+
{
|
110
|
+
"DeskApp.module.css": {"defaultSelector" : ".desk_app_ui "}
|
111
|
+
}
|
112
|
+
selectorWeightConfig :
|
113
|
+
defaultSelector : .zoho_desk_ui
|
114
|
+
|
115
|
+
case filename = 'DeskApp.module.css' ?
|
116
|
+
data[filename].defaultSelector = '.desk_app_ui'
|
117
|
+
case filename is different ?
|
118
|
+
defaultSelector = '.zoho_desk_ui'
|
119
|
+
*/
|
120
|
+
|
121
|
+
|
122
|
+
module.content = selectorWeightPrefixAdder(rootOriginal, data[filename] ? data[filename].defaultSelector : defaultSelector, excludeStrings).toString();
|
135
123
|
});
|
136
124
|
});
|
137
125
|
});
|
@@ -9,6 +9,8 @@ var _postcss = _interopRequireDefault(require("postcss"));
|
|
9
9
|
|
10
10
|
var _ErrorHandler = require("../postcss-plugins/variableModificationPlugin/ErrorHandler");
|
11
11
|
|
12
|
+
var _fileHandling = require("./utils/fileHandling");
|
13
|
+
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
15
|
|
14
16
|
// import { RawSource } from 'webpack-sources';
|
@@ -62,7 +64,7 @@ function extractVariableName(val) {
|
|
62
64
|
return val.replace(/calc\((.+)\)/gi, '$1').replace(/var\((.+)\)/gi, '$1').replace('-1', '').replace('*', '').replace('\n', '').trim();
|
63
65
|
}
|
64
66
|
|
65
|
-
function
|
67
|
+
function variableConvertor(rootOriginal, variables, settingsObject) {
|
66
68
|
rootOriginal.walkRules(rule => {
|
67
69
|
rule.nodes.forEach((decl, index) => {
|
68
70
|
const prevNode = rule.nodes[index - 1];
|
@@ -118,10 +120,12 @@ class VariableConversionCollector {
|
|
118
120
|
constructor(options = {}) {
|
119
121
|
this.optimize = options.optimize;
|
120
122
|
this.filename = options.cssVariableReplacementConfig;
|
121
|
-
this.
|
123
|
+
this.patterns = options.patterns;
|
124
|
+
this.rootDir = options.patternsRootDir;
|
125
|
+
this.initializeFiles();
|
122
126
|
}
|
123
127
|
|
124
|
-
|
128
|
+
initializeFiles() {
|
125
129
|
createFolderIfNonExistant('./.cli/logs/');
|
126
130
|
createFolderIfNonExistant('./.cli/config/variables/');
|
127
131
|
createFolderIfNonExistant('./.cli/config/selectorWeight/');
|
@@ -131,7 +135,8 @@ class VariableConversionCollector {
|
|
131
135
|
|
132
136
|
apply(compiler) {
|
133
137
|
const variables = {};
|
134
|
-
const unassigned = {};
|
138
|
+
const unassigned = {}; // console.log(windowsModification([this.filename])[0]);
|
139
|
+
|
135
140
|
const rawdata = fs.readFileSync(this.filename);
|
136
141
|
const data = JSON.parse(rawdata);
|
137
142
|
const {
|
@@ -238,7 +243,7 @@ class VariableConversionCollector {
|
|
238
243
|
});
|
239
244
|
}
|
240
245
|
});
|
241
|
-
}); // -- conversion for the root using
|
246
|
+
}); // -- conversion for the root using variableConvertor --
|
242
247
|
|
243
248
|
/*
|
244
249
|
input :
|
@@ -256,9 +261,35 @@ class VariableConversionCollector {
|
|
256
261
|
compilation.hooks.optimizeModules.tap('VariableConversionCollector', modules => {
|
257
262
|
const mods = modules.filter(x => x.type.includes('css'));
|
258
263
|
mods.forEach(module => {
|
264
|
+
const filename = module.issuer.resource;
|
265
|
+
/*
|
266
|
+
input :
|
267
|
+
filename : 'D:/MyWork/..../desk_client_app/supportapp/src/components/Avatar/Avatar.module.css,
|
268
|
+
|
269
|
+
patterns.cssVariableReplacement:
|
270
|
+
// include src folder, include deskapp folder, exclude node modules
|
271
|
+
"cssVariableReplacement": [
|
272
|
+
"src",
|
273
|
+
"deskapp",
|
274
|
+
"!node_modules"
|
275
|
+
]
|
276
|
+
rootDir : patternsRootDir : 'supportapp'
|
277
|
+
|
278
|
+
output :
|
279
|
+
true or false
|
280
|
+
*/
|
281
|
+
|
282
|
+
if (!(0, _fileHandling.isFileNameMatchingPluginPattern)({
|
283
|
+
filename,
|
284
|
+
filterArr: this.patterns.cssVariableReplacement,
|
285
|
+
rootDir: this.rootDir
|
286
|
+
})) {
|
287
|
+
return;
|
288
|
+
}
|
289
|
+
|
259
290
|
const rootOriginal = _postcss.default.parse(module.content);
|
260
291
|
|
261
|
-
module.content =
|
292
|
+
module.content = variableConvertor(rootOriginal, variables, settingsObject).toString();
|
262
293
|
});
|
263
294
|
});
|
264
295
|
});
|
@@ -292,29 +323,7 @@ class VariableConversionCollector {
|
|
292
323
|
if (a.type < b.type) {
|
293
324
|
return -1;
|
294
325
|
}
|
295
|
-
});
|
296
|
-
// const newVars = Object.keys(variables)
|
297
|
-
// //Filter Object with key contanis "NAME"
|
298
|
-
// .filter(key => variables[key].includes('--'))
|
299
|
-
// .reduce(
|
300
|
-
// (obj, key) =>
|
301
|
-
// Object.assign(obj, {
|
302
|
-
// [key]: variables[key]
|
303
|
-
// }),
|
304
|
-
// {}
|
305
|
-
// );
|
306
|
-
// console.log('new variables: ', newVars);
|
307
|
-
// try {
|
308
|
-
// fs.writeFileSync('./variableMapping.json', JSON.stringify(variables));
|
309
|
-
// } catch (err) {
|
310
|
-
// console.log(err);
|
311
|
-
// }
|
312
|
-
// fs.writeFile('./variableMapping.json', JSON.stringify(variables), err => {
|
313
|
-
// if (err) {
|
314
|
-
// throw err;
|
315
|
-
// }
|
316
|
-
// console.log('variable mapping file generated.');
|
317
|
-
// });
|
326
|
+
});
|
318
327
|
|
319
328
|
if (errorConsoleStatus) {
|
320
329
|
const errorHandler = new _ErrorHandler.ErrorHandler();
|
package/lib/plugins/index.js
CHANGED
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "CleanUpStatsPlugin", {
|
|
15
15
|
return _CleanupStatsPlugin.default;
|
16
16
|
}
|
17
17
|
});
|
18
|
+
Object.defineProperty(exports, "ComposeMinificationPlugin", {
|
19
|
+
enumerable: true,
|
20
|
+
get: function () {
|
21
|
+
return _ComposeMinification.default;
|
22
|
+
}
|
23
|
+
});
|
18
24
|
Object.defineProperty(exports, "EFCPlugin", {
|
19
25
|
enumerable: true,
|
20
26
|
get: function () {
|
@@ -33,6 +39,12 @@ Object.defineProperty(exports, "ManifestPlugin", {
|
|
33
39
|
return _ManifestPlugin.default;
|
34
40
|
}
|
35
41
|
});
|
42
|
+
Object.defineProperty(exports, "MinifyPlugin", {
|
43
|
+
enumerable: true,
|
44
|
+
get: function () {
|
45
|
+
return _MinifyPlugin.default;
|
46
|
+
}
|
47
|
+
});
|
36
48
|
Object.defineProperty(exports, "ModuleStatsPlugin", {
|
37
49
|
enumerable: true,
|
38
50
|
get: function () {
|
@@ -99,12 +111,6 @@ Object.defineProperty(exports, "TPHashMappingPlugin", {
|
|
99
111
|
return _TPHashMappingPlugin.default;
|
100
112
|
}
|
101
113
|
});
|
102
|
-
Object.defineProperty(exports, "UglifyCSSPlugin", {
|
103
|
-
enumerable: true,
|
104
|
-
get: function () {
|
105
|
-
return _UglifyCSSPlugin.default;
|
106
|
-
}
|
107
|
-
});
|
108
114
|
Object.defineProperty(exports, "UnusedFilesFindPlugin", {
|
109
115
|
enumerable: true,
|
110
116
|
get: function () {
|
@@ -126,10 +132,12 @@ var _OptimizeJSPlugin = _interopRequireDefault(require("./OptimizeJSPlugin"));
|
|
126
132
|
|
127
133
|
var _ResourceHintsPlugin = _interopRequireDefault(require("./ResourceHintsPlugin"));
|
128
134
|
|
129
|
-
var
|
135
|
+
var _MinifyPlugin = _interopRequireDefault(require("./MinifyPlugin"));
|
130
136
|
|
131
137
|
var _ManifestPlugin = _interopRequireDefault(require("./ManifestPlugin"));
|
132
138
|
|
139
|
+
var _ComposeMinification = _interopRequireDefault(require("./ComposeMinification"));
|
140
|
+
|
133
141
|
var _CleanupStatsPlugin = _interopRequireDefault(require("./CleanupStatsPlugin"));
|
134
142
|
|
135
143
|
var _EFCPlugin = _interopRequireDefault(require("./EFCPlugin"));
|
@@ -8,7 +8,7 @@ exports.isAtRule = isAtRule;
|
|
8
8
|
exports.isInsideMediaQuery = isInsideMediaQuery;
|
9
9
|
|
10
10
|
function hasPrevNodeIgnore(index, prevNode, ignoreComment) {
|
11
|
-
return index !== 0 && prevNode.type && prevNode.type === 'comment' && prevNode.text.toLowerCase() === ignoreComment;
|
11
|
+
return index !== 0 && prevNode && prevNode.type && prevNode.type === 'comment' && prevNode.text.toLowerCase() === ignoreComment;
|
12
12
|
}
|
13
13
|
|
14
14
|
function isAtRule(rule) {
|
@@ -16,13 +16,5 @@ function isAtRule(rule) {
|
|
16
16
|
}
|
17
17
|
|
18
18
|
function isInsideMediaQuery(rule) {
|
19
|
-
|
20
|
-
|
21
|
-
if (isAtRule(rule)) {
|
22
|
-
if (rule.parent.name === 'media') {
|
23
|
-
mediaQuery = true;
|
24
|
-
}
|
25
|
-
}
|
26
|
-
|
27
|
-
return mediaQuery;
|
19
|
+
return isAtRule(rule) && rule.parent && rule.parent.name === 'media' ? true : false;
|
28
20
|
}
|
@@ -3,120 +3,90 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.
|
7
|
-
exports.
|
6
|
+
exports.isFileNameMatchingPattern = isFileNameMatchingPattern;
|
7
|
+
exports.isFileNameMatchingPluginPattern = isFileNameMatchingPluginPattern;
|
8
8
|
|
9
9
|
var _windowsModification = require("../../loaderUtils/windowsModification");
|
10
10
|
|
11
|
-
var
|
11
|
+
var _ignore = _interopRequireDefault(require("ignore"));
|
12
12
|
|
13
|
-
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
}
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
}
|
15
|
+
let aliasNames = {
|
16
|
+
valueReplacer: 'postcss-value-replacer',
|
17
|
+
selectorReplace: 'postcss-selector-replace-new',
|
18
|
+
hasRTL: 'postcss-rtl',
|
19
|
+
combinerMediaQuery: 'postcss-combine-media-query',
|
20
|
+
hoverActive: 'postcss-mobile-hover',
|
21
|
+
cssVariableReplacement: 'postcss-variable-report',
|
22
|
+
composeMinification: 'postcss-compose-plugin'
|
23
|
+
};
|
24
|
+
/*
|
25
|
+
|
26
|
+
unique scenario
|
27
|
+
|
28
|
+
*/
|
29
|
+
// export function filterFileCssUniqueness(filename, filterObj) {
|
30
|
+
// let rootDir = 'supportapp';
|
31
|
+
// let include = false;
|
32
|
+
// const regex = `^(.+?)${rootDir}?\\\\`;
|
33
|
+
// const newFilename = windowsModificationFile(filename).replace(
|
34
|
+
// new RegExp(regex, 'gi'),
|
35
|
+
// ''
|
36
|
+
// );
|
37
|
+
// Object.keys(filterObj).forEach(key => {
|
38
|
+
// const ig = ignore().add(filterObj[key]);
|
39
|
+
// if (ig.ignores(newFilename)) {
|
40
|
+
// include = true;
|
41
|
+
// }
|
42
|
+
// });
|
43
|
+
// return include;
|
44
|
+
// }
|
33
45
|
|
34
|
-
function
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
combinerMediaQuery: 'postcss-combine-media-query',
|
42
|
-
hoverActive: 'postcss-mobile-hover',
|
43
|
-
cssVariableReplacement: 'postcss-variable-report' // hoverActive
|
44
|
-
// combinerMediaQuery
|
45
|
-
// rtl
|
46
|
-
// cssVariableReplacement
|
47
|
-
// selectorWeight
|
46
|
+
function isFileNameMatchingPattern({
|
47
|
+
filename,
|
48
|
+
filterObject,
|
49
|
+
plugins,
|
50
|
+
rootDir
|
51
|
+
}) {
|
52
|
+
const finalPlugins = []; // console.log(rootDir);
|
48
53
|
|
49
|
-
}
|
50
|
-
const
|
54
|
+
const regex = `^(.+?)${rootDir}?\\\\`;
|
55
|
+
const newFilename = (0, _windowsModification.windowsModificationFile)(filename).replace(new RegExp(regex, 'gi'), '');
|
51
56
|
Object.keys(filterObject).forEach(key => {
|
52
|
-
// console.log(key, filterObject[key], aliasNames);
|
53
|
-
// console.log(key);
|
54
57
|
plugins.forEach(x => {
|
55
|
-
|
56
|
-
|
58
|
+
// console.log(key, x.postcssPlugin);
|
57
59
|
if (aliasNames[key] === x.postcssPlugin) {
|
58
|
-
const
|
59
|
-
const excludeVals = filterObject[key].filter(x => /^!/gi.test(x)); // console.log(includeVals, excludeVals);
|
60
|
-
// filterObject[key] = windowsModification(filterObject[key]);
|
61
|
-
// filterObject[key].forEach(pattern => {
|
62
|
-
// // console.log(x.postcssPlugin);
|
63
|
-
// // console.log(pattern);
|
64
|
-
// // console.log(
|
65
|
-
// // /^!/gi.test(pattern),
|
66
|
-
// // filename.includes(pattern),
|
67
|
-
// // filename,
|
68
|
-
// // pattern
|
69
|
-
// // );
|
70
|
-
// // include = checkPattern(filename, pattern);
|
71
|
-
// // if (pattern === '*') {
|
72
|
-
// // // console.log('case 3');
|
73
|
-
// // include = true;
|
74
|
-
// // } else if (/^!/gi.test(pattern) && filename.includes(pattern)) {
|
75
|
-
// // // console.log('case 1');
|
76
|
-
// // include = false;
|
77
|
-
// // } else if (!/^!/gi.test(pattern) && filename.includes(pattern)) {
|
78
|
-
// // // console.log('case 2');
|
79
|
-
// // include = true;
|
80
|
-
// // }
|
81
|
-
// });
|
82
|
-
|
83
|
-
let rootDir = 'supportapp';
|
84
|
-
const regex = `^(.+?)${rootDir}?\\\\`; // rootDir = rootDir.replace('/', '\\');
|
85
|
-
// console.log(regex, new RegExp(regex, 'gi'), filename.replace(new RegExp(regex, 'gi'), ''));
|
86
|
-
|
87
|
-
const newFilename = filename.replace(new RegExp(regex, 'gi'), ''); // console.log(negateArray(filterObject[key]));
|
88
|
-
// console.log(filterObject[key]);
|
60
|
+
const ig = (0, _ignore.default)().add(filterObject[key]);
|
89
61
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
// }
|
95
|
-
// console.log(ig);
|
96
|
-
// console.log([filename].filter(filePathFilter({ include: includeVals, exclude: excludeVals })));
|
97
|
-
// if (ig.ignores(newFilename)) {
|
98
|
-
// console.log(ig.ignores(newFilename), newFilename);
|
99
|
-
// console.log('include this file', x.postcssPlugin);
|
100
|
-
// }
|
101
|
-
// console.log(x.postcssPlugin, filename, filterObject[key], include);
|
102
|
-
// if (include) {
|
103
|
-
// console.log('included: ', finalPlugins);
|
104
|
-
// console.log(filename);
|
105
|
-
// console.log('-------------------------------------------------------------------------------------------------')
|
106
|
-
// finalPlugins.push(x);
|
107
|
-
// }
|
62
|
+
if (ig.ignores(newFilename)) {
|
63
|
+
// console.log(newFilename);
|
64
|
+
finalPlugins.push(x);
|
65
|
+
}
|
108
66
|
}
|
109
67
|
});
|
110
|
-
}); //
|
111
|
-
// console.log('before: ', plugins);
|
112
|
-
// console.log('after: ');
|
113
|
-
// console.log(finalPlugins);
|
114
|
-
// }
|
115
|
-
// console.log(filename);
|
68
|
+
}); // console.log(filename);
|
116
69
|
// console.log(finalPlugins);
|
117
|
-
// console.log(
|
118
|
-
// '-------------------------------------------------------------------------------------------------'
|
119
|
-
// );
|
70
|
+
// console.log('----------------------------------------------------------------------')
|
120
71
|
|
121
72
|
return finalPlugins; // console.log(filename, filterObject);
|
73
|
+
}
|
74
|
+
|
75
|
+
function isFileNameMatchingPluginPattern({
|
76
|
+
filename,
|
77
|
+
filterArr,
|
78
|
+
rootDir
|
79
|
+
}) {
|
80
|
+
let include = true; // console.log(rootDir);
|
81
|
+
|
82
|
+
const regex = `^(.+?)${rootDir}?\\\\`; // console.log(plugin);
|
83
|
+
|
84
|
+
const newFilename = (0, _windowsModification.windowsModificationFile)(filename).replace(new RegExp(regex, 'gi'), '');
|
85
|
+
const ig = (0, _ignore.default)().add(filterArr);
|
86
|
+
|
87
|
+
if (!ig.ignores(newFilename)) {
|
88
|
+
include = false;
|
89
|
+
}
|
90
|
+
|
91
|
+
return include;
|
122
92
|
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
const ignore = require('ignore');
|
4
|
+
|
5
|
+
const ignoreArr1 = ['src', '!src\\components', 'src\\Accessibility'];
|
6
|
+
const ignoreArr2 = ['src\\', '!node_modules\\'];
|
7
|
+
const ignoreArr3 = ['*'];
|
8
|
+
|
9
|
+
const {
|
10
|
+
windowsModificationFile
|
11
|
+
} = require('../../../../lib/loaderUtils/windowsModification');
|
12
|
+
|
13
|
+
const files = ['D:\\MyWork\\React Build\\desk_client_app\\jsapps\\supportapp\\src\\components\\Accessibility\\Accessibility.module.css', 'D:\\MyWork\\React Build\\desk_client_app\\jsapps\\supportapp\\src\\components\\Avatar\\Avatar.module.css', 'D:/MyWork/React Build/desk_client_app/jsapps/supportapp/src/components/Accessibility/Accessibility.module.css', 'D:/MyWork/React Build/desk_client_app/jsapps/supportapp/src/components/Accessibility/AccessibilityNavigation.module.css', 'desk_client_app\\jsapps\\supportapp\\src\\components\\Test.module.css', 'desk_client_app\\jsapps\\supportapp\\src\\components\\Accessibility\\Accessibility.module.css', 'desk_client_app/jsapps/supportapp/src/components/Accessibility/Accessibility.module.css', 'src\\components\\Accessibility\\Accessibility.module.css', 'src/components/Accessibility/Accessibility.module.css', 'Accessibility.module.css', ''];
|
14
|
+
const ignore1 = ignore().add(ignoreArr1);
|
15
|
+
const ignore2 = ignore().add(ignoreArr2);
|
16
|
+
const ignore3 = ignore().add(ignoreArr3);
|
17
|
+
files.forEach(file => {
|
18
|
+
// console.log(file);
|
19
|
+
const rootDir = 'supportapp';
|
20
|
+
const regex = `^(.+?)${rootDir}?\\\\`;
|
21
|
+
const newFilename = windowsModificationFile(file).replace(new RegExp(regex, 'gi'), '');
|
22
|
+
console.log(newFilename);
|
23
|
+
|
24
|
+
if (newFilename.trim() !== '') {
|
25
|
+
console.log(ignore1.ignores(newFilename));
|
26
|
+
console.log(ignore2.ignores(newFilename));
|
27
|
+
console.log(ignore3.ignores(newFilename));
|
28
|
+
console.log('--------------------------------------------------------------------');
|
29
|
+
}
|
30
|
+
});
|
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _postcss = _interopRequireDefault(require("postcss"));
|
4
|
+
|
5
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
6
|
+
|
7
|
+
module.exports = _postcss.default.plugin('postcss-empty', () => (root, result) => {// console.log(root.source.input.from, result);
|
8
|
+
});
|
@@ -10,7 +10,7 @@ module.exports = _postcss.default.plugin('postcss-exclude-files', opts => {
|
|
10
10
|
} = opts;
|
11
11
|
return (root, result) => {
|
12
12
|
const inputFile = root.source.input.file;
|
13
|
-
|
13
|
+
const isIgnoredFile = opts.ignore.some(file => inputFile.indexOf(file) !== -1);
|
14
14
|
|
15
15
|
if (!isIgnoredFile) {
|
16
16
|
const handler = response => response.messages.forEach(msg => result.messages.push(msg));
|