@apollion-dsi/scripts 0.7.7
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/.prettierignore +6 -0
- package/.prettierrc.js +1 -0
- package/CHANGELOG.md +8 -0
- package/README.MD +91 -0
- package/audit-ci.json +5 -0
- package/eslint.config.js +33 -0
- package/lib/bin.d.ts +2 -0
- package/lib/bin.js +34 -0
- package/lib/bin.js.map +1 -0
- package/lib/command/build.d.ts +3 -0
- package/lib/command/build.js +145 -0
- package/lib/command/build.js.map +1 -0
- package/lib/command/create/helper.d.ts +7 -0
- package/lib/command/create/helper.js +98 -0
- package/lib/command/create/helper.js.map +1 -0
- package/lib/command/create/index.d.ts +1 -0
- package/lib/command/create/index.js +149 -0
- package/lib/command/create/index.js.map +1 -0
- package/lib/command/dev.d.ts +3 -0
- package/lib/command/dev.js +85 -0
- package/lib/command/dev.js.map +1 -0
- package/lib/command/test.d.ts +1 -0
- package/lib/command/test.js +32 -0
- package/lib/command/test.js.map +1 -0
- package/lib/config/env.d.ts +15 -0
- package/lib/config/env.js +78 -0
- package/lib/config/env.js.map +1 -0
- package/lib/config/modules.d.ts +15 -0
- package/lib/config/modules.js +92 -0
- package/lib/config/modules.js.map +1 -0
- package/lib/config/paths.d.ts +22 -0
- package/lib/config/paths.js +61 -0
- package/lib/config/paths.js.map +1 -0
- package/lib/config/shared.d.ts +24 -0
- package/lib/config/shared.js +14 -0
- package/lib/config/shared.js.map +1 -0
- package/lib/config/webpack.config.d.ts +187 -0
- package/lib/config/webpack.config.js +300 -0
- package/lib/config/webpack.config.js.map +1 -0
- package/lib/config/webpackDevServer.config.d.ts +34 -0
- package/lib/config/webpackDevServer.config.js +67 -0
- package/lib/config/webpackDevServer.config.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -0
- package/lib/utils/FileSizeReporter.d.ts +12 -0
- package/lib/utils/FileSizeReporter.js +151 -0
- package/lib/utils/FileSizeReporter.js.map +1 -0
- package/lib/utils/InlineChunkHtmlPlugin.d.ts +8 -0
- package/lib/utils/InlineChunkHtmlPlugin.js +54 -0
- package/lib/utils/InlineChunkHtmlPlugin.js.map +1 -0
- package/lib/utils/InterpolateHtmlPlugin.d.ts +7 -0
- package/lib/utils/InterpolateHtmlPlugin.js +21 -0
- package/lib/utils/InterpolateHtmlPlugin.js.map +1 -0
- package/lib/utils/ModuleNotFoundPlugin.d.ts +5 -0
- package/lib/utils/ModuleNotFoundPlugin.js +11 -0
- package/lib/utils/ModuleNotFoundPlugin.js.map +1 -0
- package/lib/utils/ModuleScopePlugin.d.ts +5 -0
- package/lib/utils/ModuleScopePlugin.js +11 -0
- package/lib/utils/ModuleScopePlugin.js.map +1 -0
- package/lib/utils/WebpackDevServerUtils.d.ts +22 -0
- package/lib/utils/WebpackDevServerUtils.js +154 -0
- package/lib/utils/WebpackDevServerUtils.js.map +1 -0
- package/lib/utils/checkRequiredFiles.d.ts +1 -0
- package/lib/utils/checkRequiredFiles.js +28 -0
- package/lib/utils/checkRequiredFiles.js.map +1 -0
- package/lib/utils/devServerMiddleware.d.ts +8 -0
- package/lib/utils/devServerMiddleware.js +19 -0
- package/lib/utils/devServerMiddleware.js.map +1 -0
- package/lib/utils/formatWebpackMessages.d.ts +5 -0
- package/lib/utils/formatWebpackMessages.js +32 -0
- package/lib/utils/formatWebpackMessages.js.map +1 -0
- package/lib/utils/getPublicUrlOrPath.d.ts +1 -0
- package/lib/utils/getPublicUrlOrPath.js +39 -0
- package/lib/utils/getPublicUrlOrPath.js.map +1 -0
- package/lib/utils/printBuildError.d.ts +1 -0
- package/lib/utils/printBuildError.js +14 -0
- package/lib/utils/printBuildError.js.map +1 -0
- package/lib/utils/printHostingInstructions.d.ts +1 -0
- package/lib/utils/printHostingInstructions.js +12 -0
- package/lib/utils/printHostingInstructions.js.map +1 -0
- package/package.json +81 -0
- package/scripts/validate.sh +16 -0
- package/src/bin.ts +41 -0
- package/src/command/build.ts +188 -0
- package/src/command/create/helper.ts +97 -0
- package/src/command/create/index.ts +200 -0
- package/src/command/dev.ts +95 -0
- package/src/command/test.ts +33 -0
- package/src/config/env.ts +82 -0
- package/src/config/modules.ts +115 -0
- package/src/config/paths.ts +88 -0
- package/src/config/shared.ts +27 -0
- package/src/config/webpack.config.js +308 -0
- package/src/config/webpackDevServer.config.ts +78 -0
- package/src/index.ts +3 -0
- package/src/utils/FileSizeReporter.ts +168 -0
- package/src/utils/InlineChunkHtmlPlugin.js +67 -0
- package/src/utils/InterpolateHtmlPlugin.js +27 -0
- package/src/utils/ModuleNotFoundPlugin.js +13 -0
- package/src/utils/ModuleScopePlugin.js +13 -0
- package/src/utils/WebpackDevServerUtils.ts +179 -0
- package/src/utils/checkRequiredFiles.ts +22 -0
- package/src/utils/devServerMiddleware.ts +20 -0
- package/src/utils/formatWebpackMessages.ts +30 -0
- package/src/utils/getPublicUrlOrPath.ts +39 -0
- package/src/utils/printBuildError.ts +8 -0
- package/src/utils/printHostingInstructions.ts +12 -0
- package/template/.editorconfig +43 -0
- package/template/.prettierignore +6 -0
- package/template/.prettierrc.js +1 -0
- package/template/audit-ci.json +5 -0
- package/template/commitlint.config.js +1 -0
- package/template/eslint.config.js +3 -0
- package/template/jest.config.js +4 -0
- package/template/public/index.html +20 -0
- package/template/src/App.test.tsx +10 -0
- package/template/src/App.tsx +35 -0
- package/template/src/index.tsx +10 -0
- package/template/tsconfig.json +25 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.measureFileSizesBeforeBuild = measureFileSizesBeforeBuild;
|
|
7
|
+
exports.printFileSizesAfterBuild = printFileSizesAfterBuild;
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const zlib_1 = __importDefault(require("zlib"));
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
function filesize(bytes) {
|
|
13
|
+
if (!Number.isFinite(bytes))
|
|
14
|
+
return '0 B';
|
|
15
|
+
const sign = bytes < 0 ? '-' : '';
|
|
16
|
+
const abs = Math.abs(bytes);
|
|
17
|
+
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
18
|
+
let i = 0;
|
|
19
|
+
let n = abs;
|
|
20
|
+
while (n >= 1024 && i < units.length - 1) {
|
|
21
|
+
n /= 1024;
|
|
22
|
+
i++;
|
|
23
|
+
}
|
|
24
|
+
const value = i === 0 ? n.toFixed(0) : n.toFixed(2);
|
|
25
|
+
return `${sign}${value} ${units[i]}`;
|
|
26
|
+
}
|
|
27
|
+
function canReadAsset(asset) {
|
|
28
|
+
return (/\.(js|css)$/.test(asset) && !/service-worker\.js/.test(asset) && !/precache-manifest\.[0-9a-f]+\.js/.test(asset));
|
|
29
|
+
}
|
|
30
|
+
function gzipSize(buf) {
|
|
31
|
+
return zlib_1.default.gzipSync(buf, { level: 6 }).length;
|
|
32
|
+
}
|
|
33
|
+
function walkSync(dir, out = []) {
|
|
34
|
+
if (!fs_1.default.existsSync(dir))
|
|
35
|
+
return out;
|
|
36
|
+
for (const entry of fs_1.default.readdirSync(dir, { withFileTypes: true })) {
|
|
37
|
+
const full = path_1.default.join(dir, entry.name);
|
|
38
|
+
if (entry.isDirectory()) {
|
|
39
|
+
walkSync(full, out);
|
|
40
|
+
}
|
|
41
|
+
else if (entry.isFile()) {
|
|
42
|
+
out.push(full);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
function removeFileNameHash(buildFolder, fileName) {
|
|
48
|
+
return fileName
|
|
49
|
+
.replace(buildFolder, '')
|
|
50
|
+
.replace(/\\/g, '/')
|
|
51
|
+
.replace(/\/?(.*)(\.[0-9a-f]+)(\.chunk)?(\.js|\.css)/, (_match, p1, _p2, p3, p4) => p1 + (p3 || '') + p4);
|
|
52
|
+
}
|
|
53
|
+
function getDifferenceLabel(currentSize, previousSize) {
|
|
54
|
+
const FIFTY_KILOBYTES = 1024 * 50;
|
|
55
|
+
const difference = currentSize - previousSize;
|
|
56
|
+
const fileSize = !Number.isNaN(difference) ? filesize(difference) : '';
|
|
57
|
+
if (difference >= FIFTY_KILOBYTES) {
|
|
58
|
+
return chalk_1.default.red('+' + fileSize);
|
|
59
|
+
}
|
|
60
|
+
else if (difference < FIFTY_KILOBYTES && difference > 0) {
|
|
61
|
+
return chalk_1.default.yellow('+' + fileSize);
|
|
62
|
+
}
|
|
63
|
+
else if (difference < 0) {
|
|
64
|
+
return chalk_1.default.green(fileSize);
|
|
65
|
+
}
|
|
66
|
+
return '';
|
|
67
|
+
}
|
|
68
|
+
function measureFileSizesBeforeBuild(buildFolder) {
|
|
69
|
+
return new Promise((resolve) => {
|
|
70
|
+
try {
|
|
71
|
+
const files = walkSync(buildFolder).filter(canReadAsset);
|
|
72
|
+
const sizes = {};
|
|
73
|
+
files.forEach((file) => {
|
|
74
|
+
try {
|
|
75
|
+
const contents = fs_1.default.readFileSync(file);
|
|
76
|
+
const key = removeFileNameHash(buildFolder, file);
|
|
77
|
+
sizes[key] = gzipSize(contents);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
/* ignore */
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
resolve({ root: buildFolder, sizes });
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
resolve({ root: buildFolder, sizes: {} });
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, maxBundleGzipSize, maxChunkGzipSize) {
|
|
91
|
+
const root = previousSizeMap?.root || buildFolder;
|
|
92
|
+
const sizes = previousSizeMap?.sizes || {};
|
|
93
|
+
const statsArr = webpackStats && typeof webpackStats.stats !== 'undefined' ? webpackStats.stats : [webpackStats];
|
|
94
|
+
const assets = [];
|
|
95
|
+
statsArr.forEach((stats) => {
|
|
96
|
+
if (!stats)
|
|
97
|
+
return;
|
|
98
|
+
const statsAssets = stats.toJson({ all: false, assets: true }).assets || [];
|
|
99
|
+
statsAssets
|
|
100
|
+
.filter((a) => canReadAsset(a.name))
|
|
101
|
+
.forEach((asset) => {
|
|
102
|
+
const filePath = path_1.default.join(root, asset.name);
|
|
103
|
+
let size = 0;
|
|
104
|
+
try {
|
|
105
|
+
const contents = fs_1.default.readFileSync(filePath);
|
|
106
|
+
size = gzipSize(contents);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
size = asset.size || 0;
|
|
110
|
+
}
|
|
111
|
+
const previousSize = sizes[removeFileNameHash(root, filePath)];
|
|
112
|
+
const difference = getDifferenceLabel(size, previousSize);
|
|
113
|
+
assets.push({
|
|
114
|
+
folder: path_1.default.join(path_1.default.basename(buildFolder), path_1.default.dirname(asset.name)),
|
|
115
|
+
name: path_1.default.basename(asset.name),
|
|
116
|
+
size,
|
|
117
|
+
sizeLabel: filesize(size) + (difference ? ' (' + difference + ')' : ''),
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
assets.sort((a, b) => b.size - a.size);
|
|
122
|
+
const longestSizeLabelLength = assets.length ? Math.max(...assets.map((a) => stripAnsi(a.sizeLabel).length)) : 0;
|
|
123
|
+
let suggestBundleSplitting = false;
|
|
124
|
+
assets.forEach((asset) => {
|
|
125
|
+
let { sizeLabel } = asset;
|
|
126
|
+
const sizeLength = stripAnsi(sizeLabel).length;
|
|
127
|
+
if (sizeLength < longestSizeLabelLength) {
|
|
128
|
+
sizeLabel += ' '.repeat(longestSizeLabelLength - sizeLength);
|
|
129
|
+
}
|
|
130
|
+
const isMainBundle = asset.name.indexOf('main.') === 0;
|
|
131
|
+
const maxRecommendedSize = isMainBundle ? maxBundleGzipSize : maxChunkGzipSize;
|
|
132
|
+
const isLarge = maxRecommendedSize && asset.size > maxRecommendedSize;
|
|
133
|
+
if (isLarge && /\.js$/.test(asset.name))
|
|
134
|
+
suggestBundleSplitting = true;
|
|
135
|
+
console.log(' ' +
|
|
136
|
+
(isLarge ? chalk_1.default.yellow(sizeLabel) : sizeLabel) +
|
|
137
|
+
' ' +
|
|
138
|
+
chalk_1.default.dim(asset.folder + path_1.default.sep) +
|
|
139
|
+
chalk_1.default.cyan(asset.name));
|
|
140
|
+
});
|
|
141
|
+
if (suggestBundleSplitting) {
|
|
142
|
+
console.log();
|
|
143
|
+
console.log(chalk_1.default.yellow('The bundle size is significantly larger than recommended.'));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function stripAnsi(s) {
|
|
147
|
+
// eslint-disable-next-line no-control-regex
|
|
148
|
+
return s.replace(/\x1B\[[0-9;]*m/g, '');
|
|
149
|
+
}
|
|
150
|
+
exports.default = { measureFileSizesBeforeBuild, printFileSizesAfterBuild };
|
|
151
|
+
//# sourceMappingURL=FileSizeReporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileSizeReporter.js","sourceRoot":"","sources":["../../src/utils/FileSizeReporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
class InlineChunkHtmlPlugin {
|
|
3
|
+
constructor(htmlWebpackPlugin, tests) {
|
|
4
|
+
this.htmlWebpackPlugin = htmlWebpackPlugin;
|
|
5
|
+
this.tests = tests || [];
|
|
6
|
+
}
|
|
7
|
+
getInlinedTag(publicPath, assets, tag) {
|
|
8
|
+
if (tag.tagName !== 'script' || !(tag.attributes && tag.attributes.src)) {
|
|
9
|
+
return tag;
|
|
10
|
+
}
|
|
11
|
+
const scriptName = publicPath
|
|
12
|
+
? tag.attributes.src.replace(publicPath, '')
|
|
13
|
+
: tag.attributes.src;
|
|
14
|
+
if (!this.tests.some((test) => scriptName.match(test))) {
|
|
15
|
+
return tag;
|
|
16
|
+
}
|
|
17
|
+
const asset = assets[scriptName];
|
|
18
|
+
if (asset == null) {
|
|
19
|
+
return tag;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
tagName: 'script',
|
|
23
|
+
innerHTML: asset.source(),
|
|
24
|
+
closeTag: true,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
apply(compiler) {
|
|
28
|
+
let publicPath = compiler.options.output.publicPath || '';
|
|
29
|
+
if (publicPath && !publicPath.endsWith('/')) {
|
|
30
|
+
publicPath += '/';
|
|
31
|
+
}
|
|
32
|
+
compiler.hooks.compilation.tap('InlineChunkHtmlPlugin', (compilation) => {
|
|
33
|
+
const tagFunction = (tag) => this.getInlinedTag(publicPath, compilation.assets, tag);
|
|
34
|
+
const hooks = this.htmlWebpackPlugin.getHooks(compilation);
|
|
35
|
+
hooks.alterAssetTagGroups.tap('InlineChunkHtmlPlugin', (assets) => {
|
|
36
|
+
assets.headTags = assets.headTags.map(tagFunction);
|
|
37
|
+
assets.bodyTags = assets.bodyTags.map(tagFunction);
|
|
38
|
+
});
|
|
39
|
+
// Remove inlined assets from the output (best-effort)
|
|
40
|
+
compilation.hooks.processAssets.tap({
|
|
41
|
+
name: 'InlineChunkHtmlPlugin',
|
|
42
|
+
stage: compilation.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_INLINE || 700,
|
|
43
|
+
}, (assets) => {
|
|
44
|
+
Object.keys(assets).forEach((assetName) => {
|
|
45
|
+
if (this.tests.some((test) => assetName.match(test))) {
|
|
46
|
+
delete compilation.assets[assetName];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
module.exports = InlineChunkHtmlPlugin;
|
|
54
|
+
//# sourceMappingURL=InlineChunkHtmlPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineChunkHtmlPlugin.js","sourceRoot":"","sources":["../../src/utils/InlineChunkHtmlPlugin.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
const escapeStringRegexp = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
3
|
+
class InterpolateHtmlPlugin {
|
|
4
|
+
constructor(htmlWebpackPlugin, replacements) {
|
|
5
|
+
this.htmlWebpackPlugin = htmlWebpackPlugin;
|
|
6
|
+
this.replacements = replacements || {};
|
|
7
|
+
}
|
|
8
|
+
apply(compiler) {
|
|
9
|
+
compiler.hooks.compilation.tap('InterpolateHtmlPlugin', (compilation) => {
|
|
10
|
+
const hooks = this.htmlWebpackPlugin.getHooks(compilation);
|
|
11
|
+
hooks.afterTemplateExecution.tap('InterpolateHtmlPlugin', (data) => {
|
|
12
|
+
Object.keys(this.replacements).forEach((key) => {
|
|
13
|
+
const value = this.replacements[key];
|
|
14
|
+
data.html = data.html.replace(new RegExp('%' + escapeStringRegexp(key) + '%', 'g'), value == null ? '' : String(value));
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
module.exports = InterpolateHtmlPlugin;
|
|
21
|
+
//# sourceMappingURL=InterpolateHtmlPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InterpolateHtmlPlugin.js","sourceRoot":"","sources":["../../src/utils/InterpolateHtmlPlugin.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE/E,MAAM,qBAAqB;IACzB,YAAY,iBAAiB,EAAE,YAAY;QACzC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,WAAW,EAAE,EAAE;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3D,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAC3B,IAAI,MAAM,CAAC,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EACpD,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACnC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
class ModuleNotFoundPlugin {
|
|
3
|
+
constructor(_appPath, _yarnLockFile) {
|
|
4
|
+
// no-op: original plugin provided nicer error messages.
|
|
5
|
+
}
|
|
6
|
+
apply(_compiler) {
|
|
7
|
+
// no-op
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
module.exports = ModuleNotFoundPlugin;
|
|
11
|
+
//# sourceMappingURL=ModuleNotFoundPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModuleNotFoundPlugin.js","sourceRoot":"","sources":["../../src/utils/ModuleNotFoundPlugin.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,oBAAoB;IACxB,YAAY,QAAQ,EAAE,aAAa;QACjC,wDAAwD;IAC1D,CAAC;IAED,KAAK,CAAC,SAAS;QACb,QAAQ;IACV,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModuleScopePlugin.js","sourceRoot":"","sources":["../../src/utils/ModuleScopePlugin.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,iBAAiB;IACrB,YAAY,OAAO,EAAE,aAAa;QAChC,QAAQ;IACV,CAAC;IAED,KAAK,CAAC,SAAS;QACb,QAAQ;IACV,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type PreparedUrls = {
|
|
2
|
+
lanUrlForConfig?: string;
|
|
3
|
+
lanUrlForTerminal?: string;
|
|
4
|
+
localUrlForTerminal: string;
|
|
5
|
+
localUrlForBrowser: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function prepareUrls(protocol: string, host: string, port: number, pathname?: string): PreparedUrls;
|
|
8
|
+
export declare function choosePort(_host: string, defaultPort: number): Promise<number | null>;
|
|
9
|
+
type PrepareProxyResult = any[] | undefined;
|
|
10
|
+
export declare function prepareProxy(proxy: unknown, _appPublicFolder?: string, _servedPathname?: string): PrepareProxyResult;
|
|
11
|
+
export type CreateCompilerOptions = {
|
|
12
|
+
appName: string;
|
|
13
|
+
config: any;
|
|
14
|
+
urls: PreparedUrls;
|
|
15
|
+
useYarn?: boolean;
|
|
16
|
+
useTypeScript?: boolean;
|
|
17
|
+
tscCompileOnError?: boolean;
|
|
18
|
+
webpack: any;
|
|
19
|
+
devSocket?: unknown;
|
|
20
|
+
};
|
|
21
|
+
export declare function createCompiler({ appName, config, urls, webpack }: CreateCompilerOptions): any;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.prepareUrls = prepareUrls;
|
|
7
|
+
exports.choosePort = choosePort;
|
|
8
|
+
exports.prepareProxy = prepareProxy;
|
|
9
|
+
exports.createCompiler = createCompiler;
|
|
10
|
+
const os_1 = __importDefault(require("os"));
|
|
11
|
+
const url_1 = __importDefault(require("url"));
|
|
12
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
+
const formatWebpackMessages_1 = __importDefault(require("./formatWebpackMessages"));
|
|
14
|
+
// detect-port@2 is ESM-only; load lazily via native dynamic import so we stay CJS-compatible.
|
|
15
|
+
// Wrapped in Function() so TypeScript's CommonJS emitter doesn't downlevel it to require().
|
|
16
|
+
const dynamicImport = new Function('specifier', 'return import(specifier)');
|
|
17
|
+
async function detectPort(port) {
|
|
18
|
+
const mod = await dynamicImport('detect-port');
|
|
19
|
+
const fn = mod.default ?? mod.detect ?? mod;
|
|
20
|
+
return fn(port);
|
|
21
|
+
}
|
|
22
|
+
function getLanIp() {
|
|
23
|
+
const ifaces = os_1.default.networkInterfaces();
|
|
24
|
+
for (const name of Object.keys(ifaces)) {
|
|
25
|
+
const list = ifaces[name];
|
|
26
|
+
if (!list)
|
|
27
|
+
continue;
|
|
28
|
+
for (const iface of list) {
|
|
29
|
+
if (iface.family === 'IPv4' && !iface.internal) {
|
|
30
|
+
return iface.address;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
function formatUrl(protocol, hostname, port, pathname) {
|
|
37
|
+
return url_1.default.format({
|
|
38
|
+
protocol,
|
|
39
|
+
hostname,
|
|
40
|
+
port,
|
|
41
|
+
pathname: pathname || '/',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function prepareUrls(protocol, host, port, pathname = '/') {
|
|
45
|
+
const isUnspecifiedHost = host === '0.0.0.0' || host === '::';
|
|
46
|
+
let prettyHost = host;
|
|
47
|
+
let lanUrlForConfig;
|
|
48
|
+
let lanUrlForTerminal;
|
|
49
|
+
if (isUnspecifiedHost) {
|
|
50
|
+
prettyHost = 'localhost';
|
|
51
|
+
const lanIp = getLanIp();
|
|
52
|
+
if (lanIp) {
|
|
53
|
+
lanUrlForConfig = lanIp;
|
|
54
|
+
lanUrlForTerminal = formatUrl(protocol, lanIp, port, pathname);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const localUrlForTerminal = formatUrl(protocol, prettyHost, port, pathname);
|
|
58
|
+
const localUrlForBrowser = formatUrl(protocol, prettyHost, port, pathname);
|
|
59
|
+
return {
|
|
60
|
+
lanUrlForConfig,
|
|
61
|
+
lanUrlForTerminal,
|
|
62
|
+
localUrlForTerminal,
|
|
63
|
+
localUrlForBrowser,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async function choosePort(_host, defaultPort) {
|
|
67
|
+
try {
|
|
68
|
+
const port = await detectPort(defaultPort);
|
|
69
|
+
if (port === defaultPort)
|
|
70
|
+
return port;
|
|
71
|
+
console.log(chalk_1.default.yellow(`Port ${defaultPort} is in use; using ${port} instead.`));
|
|
72
|
+
return port;
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
console.error(chalk_1.default.red(`Could not find a free port.`), err);
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function prepareProxy(proxy, _appPublicFolder, _servedPathname) {
|
|
80
|
+
if (!proxy)
|
|
81
|
+
return undefined;
|
|
82
|
+
if (typeof proxy === 'string') {
|
|
83
|
+
return [
|
|
84
|
+
{
|
|
85
|
+
context: (pathname) => {
|
|
86
|
+
return pathname !== '/' && !pathname.startsWith('/sockjs-node') && !pathname.startsWith('/ws');
|
|
87
|
+
},
|
|
88
|
+
target: proxy,
|
|
89
|
+
changeOrigin: true,
|
|
90
|
+
secure: false,
|
|
91
|
+
},
|
|
92
|
+
];
|
|
93
|
+
}
|
|
94
|
+
if (Array.isArray(proxy))
|
|
95
|
+
return proxy;
|
|
96
|
+
// proxy as object (legacy CRA shape: { "/api": { target: ... } })
|
|
97
|
+
if (typeof proxy === 'object') {
|
|
98
|
+
return Object.entries(proxy).map(([context, value]) => {
|
|
99
|
+
if (value && typeof value === 'object') {
|
|
100
|
+
return { context: [context], ...value };
|
|
101
|
+
}
|
|
102
|
+
return { context: [context], target: value };
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
function createCompiler({ appName, config, urls, webpack }) {
|
|
108
|
+
let compiler;
|
|
109
|
+
try {
|
|
110
|
+
compiler = webpack(config);
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
console.log(chalk_1.default.red('Failed to compile.'));
|
|
114
|
+
console.log();
|
|
115
|
+
console.log(err.message || err);
|
|
116
|
+
console.log();
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
compiler.hooks.invalid.tap('invalid', () => {
|
|
120
|
+
console.log();
|
|
121
|
+
console.log('Compiling...');
|
|
122
|
+
});
|
|
123
|
+
compiler.hooks.done.tap('done', (stats) => {
|
|
124
|
+
const statsData = stats.toJson({ all: false, warnings: true, errors: true });
|
|
125
|
+
const messages = (0, formatWebpackMessages_1.default)(statsData);
|
|
126
|
+
const isSuccessful = !messages.errors.length && !messages.warnings.length;
|
|
127
|
+
if (isSuccessful) {
|
|
128
|
+
console.log(chalk_1.default.green(`Compiled successfully!`));
|
|
129
|
+
console.log();
|
|
130
|
+
console.log(`You can now view ${chalk_1.default.bold(appName)} in the browser.`);
|
|
131
|
+
if (urls.lanUrlForTerminal) {
|
|
132
|
+
console.log(` ${chalk_1.default.bold('Local:')} ${urls.localUrlForTerminal}`);
|
|
133
|
+
console.log(` ${chalk_1.default.bold('On Your Network:')} ${urls.lanUrlForTerminal}`);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
console.log(` ${urls.localUrlForTerminal}`);
|
|
137
|
+
}
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (messages.errors.length) {
|
|
141
|
+
if (messages.errors.length > 1)
|
|
142
|
+
messages.errors.length = 1;
|
|
143
|
+
console.log(chalk_1.default.red('Failed to compile.\n'));
|
|
144
|
+
console.log(messages.errors.join('\n\n'));
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (messages.warnings.length) {
|
|
148
|
+
console.log(chalk_1.default.yellow('Compiled with warnings.\n'));
|
|
149
|
+
console.log(messages.warnings.join('\n\n'));
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
return compiler;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=WebpackDevServerUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebpackDevServerUtils.js","sourceRoot":"","sources":["../../src/utils/WebpackDevServerUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function checkRequiredFiles(files: string[]): boolean;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = checkRequiredFiles;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
function checkRequiredFiles(files) {
|
|
11
|
+
let currentFilePath;
|
|
12
|
+
try {
|
|
13
|
+
files.forEach((filePath) => {
|
|
14
|
+
currentFilePath = filePath;
|
|
15
|
+
fs_1.default.accessSync(filePath, fs_1.default.constants.F_OK);
|
|
16
|
+
});
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
const dirName = currentFilePath ? path_1.default.dirname(currentFilePath) : '';
|
|
21
|
+
const fileName = currentFilePath ? path_1.default.basename(currentFilePath) : '';
|
|
22
|
+
console.log(chalk_1.default.red('Could not find a required file.'));
|
|
23
|
+
console.log(` ${chalk_1.default.red('Name')}: ${chalk_1.default.cyan(fileName)}`);
|
|
24
|
+
console.log(` ${chalk_1.default.red('Searched in')}: ${chalk_1.default.cyan(dirName)}`);
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=checkRequiredFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkRequiredFiles.js","sourceRoot":"","sources":["../../src/utils/checkRequiredFiles.ts"],"names":[],"mappings":";;;;;AAKA,qCAgBC;AArBD,4CAAoB;AACpB,gDAAwB;AAExB,kDAA0B;AAE1B,SAAwB,kBAAkB,CAAC,KAAe;IACxD,IAAI,eAAmC,CAAC;IACxC,IAAI,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzB,eAAe,GAAG,QAAQ,CAAC;YAC3B,YAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,cAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
type NextFn = (err?: unknown) => void;
|
|
3
|
+
type Middleware = (req: IncomingMessage, res: ServerResponse, next: NextFn) => void;
|
|
4
|
+
export declare function evalSourceMapMiddleware(_devServer?: unknown): Middleware;
|
|
5
|
+
export declare function ignoredFiles(appSrc: string): RegExp;
|
|
6
|
+
export declare function noopServiceWorkerMiddleware(_servedPath?: string): Middleware;
|
|
7
|
+
export declare function redirectServedPathMiddleware(_servedPath?: string): Middleware;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.evalSourceMapMiddleware = evalSourceMapMiddleware;
|
|
4
|
+
exports.ignoredFiles = ignoredFiles;
|
|
5
|
+
exports.noopServiceWorkerMiddleware = noopServiceWorkerMiddleware;
|
|
6
|
+
exports.redirectServedPathMiddleware = redirectServedPathMiddleware;
|
|
7
|
+
function evalSourceMapMiddleware(_devServer) {
|
|
8
|
+
return (_req, _res, next) => next();
|
|
9
|
+
}
|
|
10
|
+
function ignoredFiles(appSrc) {
|
|
11
|
+
return new RegExp(`^(?!${appSrc}).+/node_modules/`, 'i');
|
|
12
|
+
}
|
|
13
|
+
function noopServiceWorkerMiddleware(_servedPath) {
|
|
14
|
+
return (_req, _res, next) => next();
|
|
15
|
+
}
|
|
16
|
+
function redirectServedPathMiddleware(_servedPath) {
|
|
17
|
+
return (_req, _res, next) => next();
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=devServerMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devServerMiddleware.js","sourceRoot":"","sources":["../../src/utils/devServerMiddleware.ts"],"names":[],"mappings":";;AAKA,0DAEC;AAED,oCAEC;AAED,kEAEC;AAED,oEAEC;AAdD,SAAgB,uBAAuB,CAAC,UAAoB;IAC1D,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,SAAgB,YAAY,CAAC,MAAc;IACzC,OAAO,IAAI,MAAM,CAAC,OAAO,MAAM,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,2BAA2B,CAAC,WAAoB;IAC9D,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,SAAgB,4BAA4B,CAAC,WAAoB;IAC/D,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = formatWebpackMessages;
|
|
4
|
+
function toString(item) {
|
|
5
|
+
if (item == null)
|
|
6
|
+
return '';
|
|
7
|
+
if (typeof item === 'string')
|
|
8
|
+
return item;
|
|
9
|
+
if (typeof item === 'object') {
|
|
10
|
+
const anyItem = item;
|
|
11
|
+
if (typeof anyItem.message === 'string') {
|
|
12
|
+
let result = '';
|
|
13
|
+
if (anyItem.moduleName)
|
|
14
|
+
result += `in ${anyItem.moduleName}\n\n`;
|
|
15
|
+
result += anyItem.message;
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
return JSON.stringify(anyItem);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return String(anyItem);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return String(item);
|
|
26
|
+
}
|
|
27
|
+
function formatWebpackMessages(json) {
|
|
28
|
+
const errors = Array.isArray(json?.errors) ? json.errors.map(toString) : [];
|
|
29
|
+
const warnings = Array.isArray(json?.warnings) ? json.warnings.map(toString) : [];
|
|
30
|
+
return { errors, warnings };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=formatWebpackMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatWebpackMessages.js","sourceRoot":"","sources":["../../src/utils/formatWebpackMessages.ts"],"names":[],"mappings":";;AAyBA,wCAIC;AAxBD,SAAS,QAAQ,CAAC,IAAa;IAC7B,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAW,CAAC;QAC5B,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,OAAO,CAAC,UAAU;gBAAE,MAAM,IAAI,MAAM,OAAO,CAAC,UAAU,MAAM,CAAC;YACjE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;YAC1B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,SAAwB,qBAAqB,CAAC,IAAS;IACrD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getPublicUrlOrPath(isEnvDevelopment: boolean, homepage: string | undefined, envPublicUrl: string | undefined): string;
|