weboptimizer 3.0.10 → 3.0.12
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/browser.d.ts +2 -0
- package/browser.js +7 -3
- package/configurator.d.ts +2 -0
- package/configurator.js +6 -2
- package/ejsLoader.d.ts +2 -1
- package/ejsLoader.js +9 -3
- package/helper.d.ts +2 -1
- package/helper.js +6 -2
- package/index.d.ts +2 -0
- package/index.js +11 -7
- package/package.json +4 -3
- package/webpackConfigurator.d.ts +2 -0
- package/webpackConfigurator.js +27 -23
package/browser.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { Logger } from 'clientnode';
|
|
1
2
|
import { Browser, InitializedBrowser } from './type';
|
|
2
3
|
export declare const browser: Browser;
|
|
4
|
+
export declare const log: Logger;
|
|
3
5
|
/**
|
|
4
6
|
* Provides a generic browser api in node or web contexts.
|
|
5
7
|
* @param replaceWindow - Indicates whether a potential existing window object
|
package/browser.js
CHANGED
|
@@ -21,7 +21,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
21
21
|
Object.defineProperty(exports, "__esModule", {
|
|
22
22
|
value: true
|
|
23
23
|
});
|
|
24
|
-
exports.getInitializedBrowser = exports["default"] = exports.browser = void 0;
|
|
24
|
+
exports.log = exports.getInitializedBrowser = exports["default"] = exports.browser = void 0;
|
|
25
25
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
26
26
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
27
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
@@ -45,6 +45,10 @@ var browser = exports.browser = {
|
|
|
45
45
|
window: null,
|
|
46
46
|
windowLoaded: false
|
|
47
47
|
};
|
|
48
|
+
var log = exports.log = new _clientnode.Logger({
|
|
49
|
+
name: 'weboptimizer-browser-logger',
|
|
50
|
+
level: 'warn'
|
|
51
|
+
});
|
|
48
52
|
// endregion
|
|
49
53
|
// region ensure presence of common browser environment
|
|
50
54
|
if (typeof TARGET_TECHNOLOGY === 'undefined' || TARGET_TECHNOLOGY === 'node')
|
|
@@ -83,7 +87,7 @@ if (typeof TARGET_TECHNOLOGY === 'undefined' || TARGET_TECHNOLOGY === 'node')
|
|
|
83
87
|
_iterator.f();
|
|
84
88
|
}
|
|
85
89
|
virtualConsole.on('error', function (error) {
|
|
86
|
-
if (!browser.debug && ['XMLHttpRequest', 'resource loading'].includes(error.type))
|
|
90
|
+
if (!browser.debug && ['XMLHttpRequest', 'resource loading'].includes(error.type)) log.warn("Loading resource failed: ".concat(error.toString(), "."));else log.error(error.stack, error.detail);
|
|
87
91
|
});
|
|
88
92
|
render = function render(template) {
|
|
89
93
|
browser.DOM = JSDOM;
|
|
@@ -185,7 +189,7 @@ if (typeof TARGET_TECHNOLOGY === 'undefined' || TARGET_TECHNOLOGY === 'node')
|
|
|
185
189
|
}
|
|
186
190
|
}, _callee);
|
|
187
191
|
}))()["catch"](function (error) {
|
|
188
|
-
|
|
192
|
+
log.error(error);
|
|
189
193
|
});else {
|
|
190
194
|
browser.initialized = true;
|
|
191
195
|
browser.window = window;
|
package/configurator.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { Logger } from 'clientnode';
|
|
1
2
|
import { ResolvedConfiguration } from './type';
|
|
2
3
|
export declare let loadedConfiguration: null | ResolvedConfiguration;
|
|
4
|
+
export declare const log: Logger;
|
|
3
5
|
/**
|
|
4
6
|
* Main entry point to determine current configuration.
|
|
5
7
|
* @param context - Location from where to build current application.
|
package/configurator.js
CHANGED
|
@@ -21,7 +21,7 @@ var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
|
21
21
|
Object.defineProperty(exports, "__esModule", {
|
|
22
22
|
value: true
|
|
23
23
|
});
|
|
24
|
-
exports.loadedConfiguration = exports.load = exports.get = exports["default"] = void 0;
|
|
24
|
+
exports.log = exports.loadedConfiguration = exports.load = exports.get = exports["default"] = void 0;
|
|
25
25
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
26
26
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
27
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
@@ -39,6 +39,10 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
39
39
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
40
40
|
// endregion
|
|
41
41
|
var loadedConfiguration = exports.loadedConfiguration = null;
|
|
42
|
+
var log = exports.log = new _clientnode.Logger({
|
|
43
|
+
name: 'weboptimizer-configurator-logger',
|
|
44
|
+
level: 'warn'
|
|
45
|
+
});
|
|
42
46
|
/**
|
|
43
47
|
* Main entry point to determine current configuration.
|
|
44
48
|
* @param context - Location from where to build current application.
|
|
@@ -192,7 +196,7 @@ var load = exports.load = function load(context) {
|
|
|
192
196
|
try {
|
|
193
197
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
194
198
|
var _name = _step3.value;
|
|
195
|
-
if (Object.prototype.hasOwnProperty.call(configuration, _name)) (0, _clientnode.extend)(true, result, configuration[_name]);else if ((0, _clientnode.isFileSync)(_name)) (0, _clientnode.extend)(true, result, JSON.parse((0, _fs.readFileSync)(_name, configuration.encoding)));else
|
|
199
|
+
if (Object.prototype.hasOwnProperty.call(configuration, _name)) (0, _clientnode.extend)(true, result, configuration[_name]);else if ((0, _clientnode.isFileSync)(_name)) (0, _clientnode.extend)(true, result, JSON.parse((0, _fs.readFileSync)(_name, configuration.encoding)));else log.warn("Given dynamic referenced configuration \"".concat(_name, "\""), 'could not be resolved.');
|
|
196
200
|
}
|
|
197
201
|
} catch (err) {
|
|
198
202
|
_iterator3.e(err);
|
package/ejsLoader.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Encoding, Mapping } from 'clientnode';
|
|
1
|
+
import { Encoding, Logger, Mapping } from 'clientnode';
|
|
2
2
|
import { Options, TemplateFunction as EJSTemplateFunction } from 'ejs';
|
|
3
3
|
import { LoaderContext } from 'webpack';
|
|
4
4
|
import { Extensions, Replacements } from './type';
|
|
@@ -24,6 +24,7 @@ export type LoaderConfiguration = Mapping<unknown> & {
|
|
|
24
24
|
replacements: Replacements;
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
|
+
export declare const log: Logger;
|
|
27
28
|
/**
|
|
28
29
|
* Main transformation function.
|
|
29
30
|
* @param source - Input string to transform.
|
package/ejsLoader.js
CHANGED
|
@@ -20,7 +20,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
20
20
|
Object.defineProperty(exports, "__esModule", {
|
|
21
21
|
value: true
|
|
22
22
|
});
|
|
23
|
-
exports.loader = exports["default"] = void 0;
|
|
23
|
+
exports.log = exports.loader = exports["default"] = void 0;
|
|
24
24
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
25
|
var _core = require("@babel/core");
|
|
26
26
|
var _babelPresetMinify = _interopRequireDefault(require("babel-preset-minify"));
|
|
@@ -38,6 +38,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
38
38
|
|
|
39
39
|
// endregion
|
|
40
40
|
var configuration = (0, _configurator["default"])();
|
|
41
|
+
var log = exports.log = new _clientnode.Logger({
|
|
42
|
+
name: 'weboptimizer-ejs-loader-logger',
|
|
43
|
+
level: 'warn'
|
|
44
|
+
});
|
|
41
45
|
/**
|
|
42
46
|
* Main transformation function.
|
|
43
47
|
* @param source - Input string to transform.
|
|
@@ -48,7 +52,9 @@ var loader = exports.loader = function loader(source) {
|
|
|
48
52
|
_this = this,
|
|
49
53
|
_givenOptions$compile;
|
|
50
54
|
var givenOptions = (0, _clientnode.convertSubstringInPlainObject)((0, _clientnode.extend)(true, {
|
|
51
|
-
compiler: {
|
|
55
|
+
compiler: {
|
|
56
|
+
localsName: '_'
|
|
57
|
+
},
|
|
52
58
|
compileSteps: 2,
|
|
53
59
|
compress: {
|
|
54
60
|
html: {},
|
|
@@ -89,7 +95,7 @@ var loader = exports.loader = function loader(source) {
|
|
|
89
95
|
source: source,
|
|
90
96
|
template: template
|
|
91
97
|
});
|
|
92
|
-
if (evaluated.error)
|
|
98
|
+
if (evaluated.error) log.warn('Error occurred during processing given query:', evaluated.error);else if (evaluated.result) (0, _clientnode.extend)(true, nestedLocals, evaluated.result);
|
|
93
99
|
}
|
|
94
100
|
var nestedOptions = (0, _clientnode.copy)(options);
|
|
95
101
|
delete nestedOptions.client;
|
package/helper.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Encoding, Mapping } from 'clientnode';
|
|
1
|
+
import { Encoding, Logger, Mapping } from 'clientnode';
|
|
2
2
|
import { BuildConfiguration, Extensions, GivenInjection, GivenInjectionConfiguration, NormalizedGivenInjection, PathConfiguration, PackageDescriptor, Replacements, ResolvedBuildConfiguration, SpecificExtensions } from './type';
|
|
3
3
|
export declare const KNOWN_FILE_EXTENSIONS: Array<string>;
|
|
4
|
+
export declare const log: Logger;
|
|
4
5
|
/**
|
|
5
6
|
* Determines whether given file path is within given list of file locations.
|
|
6
7
|
* @param filePath - Path to file to check.
|
package/helper.js
CHANGED
|
@@ -20,7 +20,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
20
20
|
Object.defineProperty(exports, "__esModule", {
|
|
21
21
|
value: true
|
|
22
22
|
});
|
|
23
|
-
exports.stripLoader = exports.resolveModulesInFolders = exports.resolveBuildConfigurationFilePaths = exports.resolveAutoInjection = exports.renderFilePathTemplate = exports.normalizePaths = exports.normalizeGivenInjection = exports.isFilePathInLocation = exports.getClosestPackageDescriptor = exports.getAutoInjection = exports.findPackageDescriptorFilePath = exports.determineModuleLocations = exports.determineModuleFilePathInPackage = exports.determineModuleFilePath = exports.determineExternalRequest = exports.determineAssetType = exports.applyModuleReplacements = exports.applyContext = exports.applyAliases = exports.KNOWN_FILE_EXTENSIONS = void 0;
|
|
23
|
+
exports.stripLoader = exports.resolveModulesInFolders = exports.resolveBuildConfigurationFilePaths = exports.resolveAutoInjection = exports.renderFilePathTemplate = exports.normalizePaths = exports.normalizeGivenInjection = exports.log = exports.isFilePathInLocation = exports.getClosestPackageDescriptor = exports.getAutoInjection = exports.findPackageDescriptorFilePath = exports.determineModuleLocations = exports.determineModuleFilePathInPackage = exports.determineModuleFilePath = exports.determineExternalRequest = exports.determineAssetType = exports.applyModuleReplacements = exports.applyContext = exports.applyAliases = exports.KNOWN_FILE_EXTENSIONS = void 0;
|
|
24
24
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
25
25
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
26
26
|
var _clientnode = require("clientnode");
|
|
@@ -34,6 +34,10 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
|
|
|
34
34
|
// endregion
|
|
35
35
|
// region constants
|
|
36
36
|
var KNOWN_FILE_EXTENSIONS = exports.KNOWN_FILE_EXTENSIONS = ['js', 'ts', 'json', 'css', 'eot', 'gif', 'html', 'ico', 'jpg', 'png', 'ejs', 'svg', 'ttf', 'woff', '.woff2'];
|
|
37
|
+
var log = exports.log = new _clientnode.Logger({
|
|
38
|
+
name: 'weboptimizer-helper-logger',
|
|
39
|
+
level: 'warn'
|
|
40
|
+
});
|
|
37
41
|
// endregion
|
|
38
42
|
// region functions
|
|
39
43
|
// region boolean
|
|
@@ -693,7 +697,7 @@ var determineModuleFilePathInPackage = exports.determineModuleFilePathInPackage
|
|
|
693
697
|
encoding: encoding
|
|
694
698
|
}));
|
|
695
699
|
} catch (error) {
|
|
696
|
-
|
|
700
|
+
log.warn("Package configuration file \"".concat(pathToPackageJSON, "\""), "could not parsed: ".concat((0, _clientnode.represent)(error)));
|
|
697
701
|
}
|
|
698
702
|
var _iterator11 = _createForOfIteratorHelper(packageMainPropertyNames),
|
|
699
703
|
_step11;
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -23,7 +23,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
23
23
|
Object.defineProperty(exports, "__esModule", {
|
|
24
24
|
value: true
|
|
25
25
|
});
|
|
26
|
-
exports["default"] = void 0;
|
|
26
|
+
exports.log = exports["default"] = void 0;
|
|
27
27
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
28
28
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
29
29
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -44,6 +44,10 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
|
|
|
44
44
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
45
45
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
46
46
|
// endregion
|
|
47
|
+
var log = exports.log = new _clientnode.Logger({
|
|
48
|
+
name: 'weboptimizer-main-logger',
|
|
49
|
+
level: 'warn'
|
|
50
|
+
});
|
|
47
51
|
// NOTE: Environment variables can only be strings.
|
|
48
52
|
process.env.UV_THREADPOOL_SIZE = '128';
|
|
49
53
|
/**
|
|
@@ -346,7 +350,7 @@ var main = function main(context) {
|
|
|
346
350
|
*/
|
|
347
351
|
processPromises.push(new Promise(function (resolve, reject) {
|
|
348
352
|
var commandLineArguments = (configuration.commandLine.build.arguments || []).concat(additionalArguments);
|
|
349
|
-
|
|
353
|
+
log.info('Running "' + ("".concat(configuration.commandLine.build.command, " ") + commandLineArguments.join(' ')).trim() + '"');
|
|
350
354
|
|
|
351
355
|
/*
|
|
352
356
|
NOTE: Take current weboptimizer's dependencies into
|
|
@@ -444,7 +448,7 @@ var main = function main(context) {
|
|
|
444
448
|
}
|
|
445
449
|
throw new Error('Error occurred during processing given ' + "command: ".concat(evaluated.error));
|
|
446
450
|
case 1:
|
|
447
|
-
|
|
451
|
+
log.info("Running \"".concat(evaluated.result, "\""));
|
|
448
452
|
processPromises.push(new Promise(function (resolve, reject) {
|
|
449
453
|
return [(0, _clientnode.handleChildProcess)((0, _child_process.exec)(evaluated.result, _objectSpread({
|
|
450
454
|
encoding: configuration.encoding
|
|
@@ -514,7 +518,7 @@ var main = function main(context) {
|
|
|
514
518
|
if (evaluated.error) throw new Error('Error occurred during processing given task: ' + evaluated.error);
|
|
515
519
|
if (evaluated.result) processPromises.push(new Promise(function (resolve, reject) {
|
|
516
520
|
var commandLineArguments = (task.arguments || []).concat(additionalArguments);
|
|
517
|
-
|
|
521
|
+
log.info('Running "' + ("".concat(task.command, " ") + commandLineArguments.join(' ')).trim() + '"');
|
|
518
522
|
var childProcess = (0, _child_process.spawn)(task.command, commandLineArguments, childProcessOptions);
|
|
519
523
|
var closeHandler = (0, _clientnode.getProcessCloseHandler)(resolve, reject);
|
|
520
524
|
var _iterator0 = _createForOfIteratorHelper(_clientnode.CLOSE_EVENT_NAMES),
|
|
@@ -574,7 +578,7 @@ var main = function main(context) {
|
|
|
574
578
|
} finally {
|
|
575
579
|
_iterator1.f();
|
|
576
580
|
}
|
|
577
|
-
if (require.main === module && (configuration.givenCommandLineArguments.length < 3 || !possibleArguments.includes(configuration.givenCommandLineArguments[2])))
|
|
581
|
+
if (require.main === module && (configuration.givenCommandLineArguments.length < 3 || !possibleArguments.includes(configuration.givenCommandLineArguments[2]))) log.info("Give one of \"".concat(possibleArguments.join('", "'), "\" as command"), 'line argument. You can provide a json string as second', 'parameter to dynamically overwrite some configurations.\n');
|
|
578
582
|
// endregion
|
|
579
583
|
// region forward nested return codes
|
|
580
584
|
_context3.prev = 38;
|
|
@@ -586,7 +590,7 @@ var main = function main(context) {
|
|
|
586
590
|
case 40:
|
|
587
591
|
_context3.prev = 40;
|
|
588
592
|
_t7 = _context3["catch"](38);
|
|
589
|
-
|
|
593
|
+
log.error(_t7);
|
|
590
594
|
process.exit(_t7.returnCode);
|
|
591
595
|
case 41:
|
|
592
596
|
_context3.next = 44;
|
|
@@ -600,7 +604,7 @@ var main = function main(context) {
|
|
|
600
604
|
}
|
|
601
605
|
throw _t8;
|
|
602
606
|
case 43:
|
|
603
|
-
|
|
607
|
+
log.error(_t8);
|
|
604
608
|
case 44:
|
|
605
609
|
return _context3.abrupt("return", clear);
|
|
606
610
|
case 45:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "weboptimizer",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.12",
|
|
4
4
|
"description": "A generic web optimizer, (module) bundler and development environment.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"webpack",
|
|
@@ -66,7 +66,8 @@
|
|
|
66
66
|
"build:lint": " babel --extensions '.ts' --plugins @babel/plugin-proposal-class-properties,@babel/plugin-syntax-top-level-await,babel-plugin-transform-modern-regexp --presets @babel/preset-typescript --out-file eslint.config.mjs eslint.config.ts",
|
|
67
67
|
"build:plain": "command=\"babel --extensions '.ts' --plugins @babel/plugin-proposal-class-properties,@babel/plugin-syntax-top-level-await,@babel/plugin-transform-runtime,babel-plugin-transform-modern-regexp --presets @babel/preset-env,@babel/preset-typescript --out-file\" && $command browser.js browser.ts && $command configurator.js configurator.ts && $command ejsLoader.js ejsLoader.ts && $command helper.js helper.ts && $command index.js index.ts && $command jestSetup.js jestSetup.ts && $command plugins/HTMLTransformation.js plugins/HTMLTransformation.ts && $command plugins/InPlaceAssetsIntoHTML.js plugins/InPlaceAssetsIntoHTML.ts && $command stylelintConfigurator.js stylelintConfigurator.ts && $command type.js type.ts && $command webpackConfigurator.js webpackConfigurator.ts && shx chmod +x index.js && shx sed -i 's/(#!\\\\/usr\\\\/bin\\\\/env )babel-(node)/$1$2/' index.js 1>/dev/null",
|
|
68
68
|
"build:copy-test-artefacts": "cd test/simple && shx touch yarn.lock && rimraf node_modules && YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install; cd ../../ && cd test/scss && shx touch yarn.lock && rimraf node_modules && YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install; cd ../../ && rimraf node_modules/weboptimizer test/simple/node_modules/weboptimizer test/scss/node_modules/weboptimizer && shx mkdir -p node_modules/weboptimizer test/simple/node_modules/weboptimizer test/scss/node_modules/weboptimizer && copyCommand='shx cp -r plugins *.ts *.js *.mjs *.json *.ejs' && $copyCommand node_modules/weboptimizer/ && $copyCommand test/simple/node_modules/weboptimizer/ && $copyCommand test/scss/node_modules/weboptimizer/",
|
|
69
|
-
"build:test": " yarn clear && yarn build && command='babel --extensions '.ts' --plugins @babel/plugin-proposal-class-properties,@babel/plugin-syntax-top-level-await,@babel/plugin-transform-runtime --presets @babel/preset-env,@babel/preset-typescript --source-root ../ --out-file' && yarn build:copy-test-artefacts && $command test/
|
|
69
|
+
"build:test": " yarn clear && yarn build && command='babel --extensions '.ts' --plugins @babel/plugin-proposal-class-properties,@babel/plugin-syntax-top-level-await,@babel/plugin-transform-runtime --presets @babel/preset-env,@babel/preset-typescript --source-root ../ --out-file' && yarn build:copy-test-artefacts && $command test/ejsLoader.js test/ejsLoader.ts",
|
|
70
|
+
"build:testBACKUP": " yarn clear && yarn build && command='babel --extensions '.ts' --plugins @babel/plugin-proposal-class-properties,@babel/plugin-syntax-top-level-await,@babel/plugin-transform-runtime --presets @babel/preset-env,@babel/preset-typescript --source-root ../ --out-file' && yarn build:copy-test-artefacts && $command test/browser.js test/browser.ts && $command test/configurator.js test/configurator.ts && $command test/helper.js test/helper.ts && $command test/ejsLoader.js test/ejsLoader.ts && $command test/stylelintConfigurator.js test/stylelintConfigurator.ts && $command test/index.js test/index.ts && $command test/webpackConfigurator.js test/webpackConfigurator.ts",
|
|
70
71
|
"build:test:source-map": "yarn clear && yarn build && command='babel --extensions '.ts' --plugins @babel/plugin-proposal-class-properties,@babel/plugin-syntax-top-level-await,@babel/plugin-transform-runtime --presets @babel/preset-env,@babel/preset-typescript --source-maps inline --source-root ../ --out-file' && yarn build:copy-test-artefacts && $command test/browser.js test/browser.ts && $command test/configurator.js test/configurator.ts && $command test/helper.js test/helper.ts && $command test/ejsLoader.js test/ejsLoader.ts && $command test/stylelintConfigurator.js test/stylelintConfigurator.ts && $command test/index.js test/index.ts && $command test/webpackConfigurator.js test/webpackConfigurator.ts",
|
|
71
72
|
"build:types": "tsc --declaration --emitDeclarationOnly",
|
|
72
73
|
"check": "yarn check:types; yarn lint",
|
|
@@ -98,7 +99,7 @@
|
|
|
98
99
|
"babel-loader": "^10.1.1",
|
|
99
100
|
"babel-plugin-transform-modern-regexp": "^0.0.6",
|
|
100
101
|
"babel-preset-minify": "^0.5.2",
|
|
101
|
-
"clientnode": "4.0.
|
|
102
|
+
"clientnode": "4.0.1360",
|
|
102
103
|
"ejs": "^5.0.1",
|
|
103
104
|
"exports-loader": "^5.0.0",
|
|
104
105
|
"extract-loader": "^5.1.0",
|
package/webpackConfigurator.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { Logger } from 'clientnode';
|
|
1
2
|
import { WebpackConfiguration } from './type';
|
|
3
|
+
export declare const log: Logger;
|
|
2
4
|
export declare const optionalRequire: <T = unknown>(id: string) => null | T;
|
|
3
5
|
export declare let webpackConfiguration: WebpackConfiguration;
|
|
4
6
|
export default webpackConfiguration;
|
package/webpackConfigurator.js
CHANGED
|
@@ -20,7 +20,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
20
20
|
Object.defineProperty(exports, "__esModule", {
|
|
21
21
|
value: true
|
|
22
22
|
});
|
|
23
|
-
exports.webpackConfiguration = exports.optionalRequire = exports["default"] = void 0;
|
|
23
|
+
exports.webpackConfiguration = exports.optionalRequire = exports.log = exports["default"] = void 0;
|
|
24
24
|
var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
|
|
25
25
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
26
26
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
@@ -41,6 +41,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
41
41
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
42
42
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
43
43
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
44
|
+
var log = exports.log = new _clientnode.Logger({
|
|
45
|
+
name: 'weboptimizer-webpack-configurator-logger',
|
|
46
|
+
level: 'warn'
|
|
47
|
+
});
|
|
44
48
|
/// region optional imports
|
|
45
49
|
// NOTE: Has to be defined here to ensure to resolve from here.
|
|
46
50
|
var currentRequire =
|
|
@@ -77,7 +81,7 @@ for (var _i = 0, _Object$entries = Object.entries(pluginNameResourceMapping); _i
|
|
|
77
81
|
name = _Object$entries$_i[0],
|
|
78
82
|
alias = _Object$entries$_i[1];
|
|
79
83
|
var plugin = optionalRequire(alias);
|
|
80
|
-
if (plugin) plugins[name] = plugin;else
|
|
84
|
+
if (plugin) plugins[name] = plugin;else log.debug("Optional webpack plugin \"".concat(name, "\" not available."));
|
|
81
85
|
}
|
|
82
86
|
// endregion
|
|
83
87
|
var configuration = (0, _configurator["default"])();
|
|
@@ -437,7 +441,7 @@ if (_module.enforceDeduplication) {
|
|
|
437
441
|
var otherPackageDescriptor = (0, _helper.getClosestPackageDescriptor)(alternateTargetPath);
|
|
438
442
|
if (otherPackageDescriptor) {
|
|
439
443
|
if (packageDescriptor.configuration.version === otherPackageDescriptor.configuration.version) {
|
|
440
|
-
|
|
444
|
+
log.info('\nConsolidate module request', "\"".concat(targetPath, "\" to"), "\"".concat(alternateTargetPath, "\"."));
|
|
441
445
|
/*
|
|
442
446
|
NOTE: Only overwriting
|
|
443
447
|
"result.createData.resource" like
|
|
@@ -460,7 +464,7 @@ if (_module.enforceDeduplication) {
|
|
|
460
464
|
} finally {
|
|
461
465
|
_iterator9.f();
|
|
462
466
|
}
|
|
463
|
-
if (redundantRequest)
|
|
467
|
+
if (redundantRequest) log.warn('\nIncluding different versions of same package', "\"".concat(packageDescriptor.configuration.name, "\". Module"), "\"".concat(targetPath, "\" (version"), "".concat(packageDescriptor.configuration.version, ") has"), "redundancies with \"".concat(redundantRequest.path, "\""), "(version ".concat(redundantRequest.version, ")."));
|
|
464
468
|
}
|
|
465
469
|
}
|
|
466
470
|
};
|
|
@@ -522,10 +526,10 @@ new NormalModuleReplacementPlugin(
|
|
|
522
526
|
packageDescriptor.configuration.version ===
|
|
523
527
|
otherPackageDescriptor.configuration.version
|
|
524
528
|
) {
|
|
525
|
-
|
|
526
|
-
'\nConsolidate module request
|
|
527
|
-
|
|
528
|
-
|
|
529
|
+
log.info(
|
|
530
|
+
'\nConsolidate module request',
|
|
531
|
+
`"${targetPath}" to`,
|
|
532
|
+
`"${alternateTargetPath}".`
|
|
529
533
|
)
|
|
530
534
|
result.createData.resource =
|
|
531
535
|
alternateTargetPath
|
|
@@ -542,13 +546,13 @@ new NormalModuleReplacementPlugin(
|
|
|
542
546
|
}
|
|
543
547
|
}
|
|
544
548
|
if (redundantRequest)
|
|
545
|
-
|
|
546
|
-
'\nIncluding different versions of same package
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
`${packageDescriptor.configuration.version}) has
|
|
550
|
-
`redundancies with "${redundantRequest.path}"
|
|
551
|
-
`version ${redundantRequest.version}).`
|
|
549
|
+
log.warn(
|
|
550
|
+
'\nIncluding different versions of same package',
|
|
551
|
+
`"${packageDescriptor.configuration.name}". Module`,
|
|
552
|
+
`"${targetPath}" (version`,
|
|
553
|
+
`${packageDescriptor.configuration.version}) has`,
|
|
554
|
+
`redundancies with "${redundantRequest.path}"`,
|
|
555
|
+
`(version ${redundantRequest.version}).`
|
|
552
556
|
)
|
|
553
557
|
}
|
|
554
558
|
}
|
|
@@ -994,7 +998,7 @@ try {
|
|
|
994
998
|
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
|
|
995
999
|
var pluginConfiguration = _step10.value;
|
|
996
1000
|
var _plugin = optionalRequire(pluginConfiguration.name.module);
|
|
997
|
-
if (_plugin) pluginInstances.push((0, _construct2["default"])(_plugin[pluginConfiguration.name.initializer], (0, _toConsumableArray2["default"])(pluginConfiguration.parameters)));else
|
|
1001
|
+
if (_plugin) pluginInstances.push((0, _construct2["default"])(_plugin[pluginConfiguration.name.initializer], (0, _toConsumableArray2["default"])(pluginConfiguration.parameters)));else log.warn("Configured plugin module \"".concat(pluginConfiguration.name.module, "\""), 'could not be loaded.');
|
|
998
1002
|
}
|
|
999
1003
|
// endregion
|
|
1000
1004
|
// region minimizer and image compression
|
|
@@ -1025,10 +1029,10 @@ if (configuration.path.configuration.json) try {
|
|
|
1025
1029
|
try {
|
|
1026
1030
|
customConfiguration = currentRequire(configuration.path.configuration.json);
|
|
1027
1031
|
} catch (error) {
|
|
1028
|
-
|
|
1032
|
+
log.debug('Importing provided json webpack configuration file path', "under \"".concat(configuration.path.configuration.json, "\" failed:"), (0, _clientnode.represent)(error));
|
|
1029
1033
|
}
|
|
1030
1034
|
} catch (_unused2) {
|
|
1031
|
-
|
|
1035
|
+
log.debug('Optional configuration file', "\"".concat(configuration.path.configuration.json, "\" not available."));
|
|
1032
1036
|
}
|
|
1033
1037
|
var webpackConfiguration = exports.webpackConfiguration = (0, _clientnode.extend)(true, {
|
|
1034
1038
|
bail: !configuration.givenCommandLineArguments.includes('--watch'),
|
|
@@ -1139,16 +1143,16 @@ if (configuration.path.configuration.javaScript) try {
|
|
|
1139
1143
|
var result = optionalRequire(configuration.path.configuration.javaScript);
|
|
1140
1144
|
if ((0, _clientnode.isPlainObject)(result)) {
|
|
1141
1145
|
if (Object.prototype.hasOwnProperty.call(result, 'replaceWebOptimizer')) exports.webpackConfiguration = webpackConfiguration = result.replaceWebOptimizer;else (0, _clientnode.extend)(true, webpackConfiguration, result);
|
|
1142
|
-
} else
|
|
1146
|
+
} else log.debug('Failed to load given JavaScript configuration file path', "\"".concat(configuration.path.configuration.javaScript, "\"."));
|
|
1143
1147
|
} catch (_unused3) {
|
|
1144
|
-
|
|
1148
|
+
log.debug('Optional configuration file script', "\"".concat(configuration.path.configuration.javaScript, "\" not available."));
|
|
1145
1149
|
}
|
|
1146
1150
|
if (configuration.showConfiguration) {
|
|
1147
|
-
|
|
1151
|
+
log.info('Using internal configuration:', _util["default"].inspect(configuration, {
|
|
1148
1152
|
depth: null
|
|
1149
1153
|
}));
|
|
1150
|
-
|
|
1151
|
-
|
|
1154
|
+
log.info('-----------------------------------------------------------');
|
|
1155
|
+
log.info('Using webpack configuration:', _util["default"].inspect(webpackConfiguration, {
|
|
1152
1156
|
depth: null
|
|
1153
1157
|
}));
|
|
1154
1158
|
}
|