@nx/webpack 16.0.0-beta.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/CHANGELOG.md +8 -0
- package/LICENSE +22 -0
- package/README.md +63 -0
- package/executors.json +36 -0
- package/generators.json +33 -0
- package/index.d.ts +12 -0
- package/index.js +14 -0
- package/index.js.map +1 -0
- package/migrations.json +35 -0
- package/package.json +79 -0
- package/src/executors/dev-server/compat.d.ts +2 -0
- package/src/executors/dev-server/compat.js +6 -0
- package/src/executors/dev-server/compat.js.map +1 -0
- package/src/executors/dev-server/dev-server.impl.d.ts +7 -0
- package/src/executors/dev-server/dev-server.impl.js +69 -0
- package/src/executors/dev-server/dev-server.impl.js.map +1 -0
- package/src/executors/dev-server/lib/get-dev-server-config.d.ts +5 -0
- package/src/executors/dev-server/lib/get-dev-server-config.js +89 -0
- package/src/executors/dev-server/lib/get-dev-server-config.js.map +1 -0
- package/src/executors/dev-server/lib/serve-path.d.ts +3 -0
- package/src/executors/dev-server/lib/serve-path.js +46 -0
- package/src/executors/dev-server/lib/serve-path.js.map +1 -0
- package/src/executors/dev-server/schema.d.ts +17 -0
- package/src/executors/dev-server/schema.json +76 -0
- package/src/executors/ssr-dev-server/compat.d.ts +2 -0
- package/src/executors/ssr-dev-server/compat.js +6 -0
- package/src/executors/ssr-dev-server/compat.js.map +1 -0
- package/src/executors/ssr-dev-server/lib/wait-until-server-is-listening.d.ts +1 -0
- package/src/executors/ssr-dev-server/lib/wait-until-server-is-listening.js +40 -0
- package/src/executors/ssr-dev-server/lib/wait-until-server-is-listening.js.map +1 -0
- package/src/executors/ssr-dev-server/schema.d.ts +11 -0
- package/src/executors/ssr-dev-server/schema.json +37 -0
- package/src/executors/ssr-dev-server/ssr-dev-server.impl.d.ts +8 -0
- package/src/executors/ssr-dev-server/ssr-dev-server.impl.js +59 -0
- package/src/executors/ssr-dev-server/ssr-dev-server.impl.js.map +1 -0
- package/src/executors/webpack/compat.d.ts +2 -0
- package/src/executors/webpack/compat.js +6 -0
- package/src/executors/webpack/compat.js.map +1 -0
- package/src/executors/webpack/lib/get-webpack-config.d.ts +5 -0
- package/src/executors/webpack/lib/get-webpack-config.js +17 -0
- package/src/executors/webpack/lib/get-webpack-config.js.map +1 -0
- package/src/executors/webpack/lib/normalize-options.d.ts +4 -0
- package/src/executors/webpack/lib/normalize-options.js +71 -0
- package/src/executors/webpack/lib/normalize-options.js.map +1 -0
- package/src/executors/webpack/lib/run-webpack.d.ts +3 -0
- package/src/executors/webpack/lib/run-webpack.js +38 -0
- package/src/executors/webpack/lib/run-webpack.js.map +1 -0
- package/src/executors/webpack/schema.d.ts +105 -0
- package/src/executors/webpack/schema.json +414 -0
- package/src/executors/webpack/webpack.impl.d.ts +14 -0
- package/src/executors/webpack/webpack.impl.js +107 -0
- package/src/executors/webpack/webpack.impl.js.map +1 -0
- package/src/generators/init/init.d.ts +5 -0
- package/src/generators/init/init.js +41 -0
- package/src/generators/init/init.js.map +1 -0
- package/src/generators/init/schema.d.ts +5 -0
- package/src/generators/init/schema.json +28 -0
- package/src/generators/webpack-project/schema.d.ts +13 -0
- package/src/generators/webpack-project/schema.json +77 -0
- package/src/generators/webpack-project/webpack-project.d.ts +5 -0
- package/src/generators/webpack-project/webpack-project.js +111 -0
- package/src/generators/webpack-project/webpack-project.js.map +1 -0
- package/src/migrations/update-15-0-0/add-babel-inputs.d.ts +2 -0
- package/src/migrations/update-15-0-0/add-babel-inputs.js +13 -0
- package/src/migrations/update-15-0-0/add-babel-inputs.js.map +1 -0
- package/src/migrations/update-15-4-5/remove-es2015-polyfills-option.d.ts +2 -0
- package/src/migrations/update-15-4-5/remove-es2015-polyfills-option.js +25 -0
- package/src/migrations/update-15-4-5/remove-es2015-polyfills-option.js.map +1 -0
- package/src/migrations/update-15-6-3/webpack-config-setup.d.ts +2 -0
- package/src/migrations/update-15-6-3/webpack-config-setup.js +105 -0
- package/src/migrations/update-15-6-3/webpack-config-setup.js.map +1 -0
- package/src/migrations/update-15-7-2/add-babelUpwardRootMode-flag.d.ts +2 -0
- package/src/migrations/update-15-7-2/add-babelUpwardRootMode-flag.js +21 -0
- package/src/migrations/update-15-7-2/add-babelUpwardRootMode-flag.js.map +1 -0
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.d.ts +2 -0
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +13 -0
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js.map +1 -0
- package/src/plugins/generate-package-json-plugin.d.ts +12 -0
- package/src/plugins/generate-package-json-plugin.js +49 -0
- package/src/plugins/generate-package-json-plugin.js.map +1 -0
- package/src/plugins/stats-json-plugin.d.ts +4 -0
- package/src/plugins/stats-json-plugin.js +14 -0
- package/src/plugins/stats-json-plugin.js.map +1 -0
- package/src/plugins/webpack-nx-build-coordination-plugin.d.ts +9 -0
- package/src/plugins/webpack-nx-build-coordination-plugin.js +84 -0
- package/src/plugins/webpack-nx-build-coordination-plugin.js.map +1 -0
- package/src/plugins/write-index-html-plugin.d.ts +22 -0
- package/src/plugins/write-index-html-plugin.js +251 -0
- package/src/plugins/write-index-html-plugin.js.map +1 -0
- package/src/utils/config.d.ts +17 -0
- package/src/utils/config.js +35 -0
- package/src/utils/config.js.map +1 -0
- package/src/utils/create-copy-plugin.d.ts +3 -0
- package/src/utils/create-copy-plugin.js +28 -0
- package/src/utils/create-copy-plugin.js.map +1 -0
- package/src/utils/fs.d.ts +6 -0
- package/src/utils/fs.js +59 -0
- package/src/utils/fs.js.map +1 -0
- package/src/utils/get-client-environment.d.ts +5 -0
- package/src/utils/get-client-environment.js +30 -0
- package/src/utils/get-client-environment.js.map +1 -0
- package/src/utils/get-css-module-local-ident.d.ts +1 -0
- package/src/utils/get-css-module-local-ident.js +19 -0
- package/src/utils/get-css-module-local-ident.js.map +1 -0
- package/src/utils/hash-format.d.ts +7 -0
- package/src/utils/hash-format.js +24 -0
- package/src/utils/hash-format.js.map +1 -0
- package/src/utils/models.d.ts +23 -0
- package/src/utils/models.js +3 -0
- package/src/utils/models.js.map +1 -0
- package/src/utils/run-webpack.d.ts +5 -0
- package/src/utils/run-webpack.js +30 -0
- package/src/utils/run-webpack.js.map +1 -0
- package/src/utils/versions.d.ts +8 -0
- package/src/utils/versions.js +13 -0
- package/src/utils/versions.js.map +1 -0
- package/src/utils/web-babel-loader.d.ts +0 -0
- package/src/utils/web-babel-loader.js +29 -0
- package/src/utils/web-babel-loader.js.map +1 -0
- package/src/utils/webpack/custom-webpack.d.ts +3 -0
- package/src/utils/webpack/custom-webpack.js +42 -0
- package/src/utils/webpack/custom-webpack.js.map +1 -0
- package/src/utils/webpack/interpolate-env-variables-to-index.d.ts +1 -0
- package/src/utils/webpack/interpolate-env-variables-to-index.js +31 -0
- package/src/utils/webpack/interpolate-env-variables-to-index.js.map +1 -0
- package/src/utils/webpack/normalize-entry.d.ts +2 -0
- package/src/utils/webpack/normalize-entry.js +30 -0
- package/src/utils/webpack/normalize-entry.js.map +1 -0
- package/src/utils/webpack/package-chunk-sort.d.ts +5 -0
- package/src/utils/webpack/package-chunk-sort.js +30 -0
- package/src/utils/webpack/package-chunk-sort.js.map +1 -0
- package/src/utils/webpack/plugins/postcss-cli-resources.d.ts +13 -0
- package/src/utils/webpack/plugins/postcss-cli-resources.js +170 -0
- package/src/utils/webpack/plugins/postcss-cli-resources.js.map +1 -0
- package/src/utils/webpack/plugins/scripts-webpack-plugin.d.ts +17 -0
- package/src/utils/webpack/plugins/scripts-webpack-plugin.js +121 -0
- package/src/utils/webpack/plugins/scripts-webpack-plugin.js.map +1 -0
- package/src/utils/with-nx.d.ts +61 -0
- package/src/utils/with-nx.js +285 -0
- package/src/utils/with-nx.js.map +1 -0
- package/src/utils/with-web.d.ts +21 -0
- package/src/utils/with-web.js +468 -0
- package/src/utils/with-web.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-webpack.js","sourceRoot":"","sources":["../../../../../packages/webpack/src/utils/run-webpack.ts"],"names":[],"mappings":";;;AAEA,+BAAkC;AAGlC,SAAgB,mBAAmB,CACjC,MAAW,EACX,OAAiC,EACjC,gBAAqD;IAErD,OAAO,IAAI,iBAAU,CAAC,CAAC,UAAU,EAAE,EAAE;QACnC,MAAM,eAAe,GAAQ,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,OAAe,CAAC;QAEpB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACxD,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAI,MAAc,CAAC,SAAS,IAAI,EAAE,CAAC;QAExD,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,CAAC;QAErD,eAAe,CAAC,WAAW,GAAG,UAAU,MAAW;YACjD,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAEzB,MAAM,gBAAgB,GAAkC,MAAM,CAAC,OAAO,CAAC;YAEvE,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAClD,MAAM,CAAC,OAAO,CAAC,IACjB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QACxE,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,gBAAgB,CACxC,eAAe,EACf,eAAsB,CACvB,CAAC;QAEF,IAAI;YACF,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SACnC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAxCD,kDAwCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const nxVersion: any;
|
|
2
|
+
export declare const swcLoaderVersion = "0.1.15";
|
|
3
|
+
export declare const swcHelpersVersion = "~0.4.11";
|
|
4
|
+
export declare const tsLibVersion = "^2.3.0";
|
|
5
|
+
export declare const reactRefreshWebpackPluginVersion = "^0.5.7";
|
|
6
|
+
export declare const svgrWebpackVersion = "^6.1.2";
|
|
7
|
+
export declare const reactRefreshVersion = "^0.10.0";
|
|
8
|
+
export declare const urlLoaderVersion = "^4.1.1";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.urlLoaderVersion = exports.reactRefreshVersion = exports.svgrWebpackVersion = exports.reactRefreshWebpackPluginVersion = exports.tsLibVersion = exports.swcHelpersVersion = exports.swcLoaderVersion = exports.nxVersion = void 0;
|
|
4
|
+
exports.nxVersion = require('../../package.json').version;
|
|
5
|
+
exports.swcLoaderVersion = '0.1.15';
|
|
6
|
+
exports.swcHelpersVersion = '~0.4.11';
|
|
7
|
+
exports.tsLibVersion = '^2.3.0';
|
|
8
|
+
// React apps
|
|
9
|
+
exports.reactRefreshWebpackPluginVersion = '^0.5.7';
|
|
10
|
+
exports.svgrWebpackVersion = '^6.1.2';
|
|
11
|
+
exports.reactRefreshVersion = '^0.10.0';
|
|
12
|
+
exports.urlLoaderVersion = '^4.1.1';
|
|
13
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/webpack/src/utils/versions.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAElD,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,YAAY,GAAG,QAAQ,CAAC;AAErC,aAAa;AACA,QAAA,gCAAgC,GAAG,QAAQ,CAAC;AAC5C,QAAA,kBAAkB,GAAG,QAAQ,CAAC;AAC9B,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,gBAAgB,GAAG,QAAQ,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
module.exports = require('babel-loader').custom(() => {
|
|
13
|
+
return {
|
|
14
|
+
customOptions(_a) {
|
|
15
|
+
var { isModern, emitDecoratorMetadata } = _a, loader = __rest(_a, ["isModern", "emitDecoratorMetadata"]);
|
|
16
|
+
return {
|
|
17
|
+
custom: { isModern, emitDecoratorMetadata },
|
|
18
|
+
loader,
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
config(cfg, { customOptions: { isModern, emitDecoratorMetadata } }) {
|
|
22
|
+
// Add hint to our babel preset so it can handle modern vs legacy bundles.
|
|
23
|
+
cfg.options.caller.isModern = isModern;
|
|
24
|
+
cfg.options.caller.emitDecoratorMetadata = emitDecoratorMetadata;
|
|
25
|
+
return cfg.options;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=web-babel-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-babel-loader.js","sourceRoot":"","sources":["../../../../../packages/webpack/src/utils/web-babel-loader.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;IACnD,OAAO;QACL,aAAa,CAAC,EAA8C;gBAA9C,EAAE,QAAQ,EAAE,qBAAqB,OAAa,EAAR,MAAM,cAA5C,qCAA8C,CAAF;YACxD,OAAO;gBACL,MAAM,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE;gBAC3C,MAAM;aACP,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE;YAChE,0EAA0E;YAC1E,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;YACjE,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isRegistered = exports.resolveCustomWebpackConfig = exports.tsNodeRegister = void 0;
|
|
4
|
+
function tsNodeRegister(file = '', tsConfig) {
|
|
5
|
+
if (!(file === null || file === void 0 ? void 0 : file.endsWith('.ts')))
|
|
6
|
+
return;
|
|
7
|
+
// Avoid double-registering which can lead to issues type-checking already transformed files.
|
|
8
|
+
if (isRegistered())
|
|
9
|
+
return;
|
|
10
|
+
// Register TS compiler lazily
|
|
11
|
+
require('ts-node').register({
|
|
12
|
+
project: tsConfig,
|
|
13
|
+
compilerOptions: {
|
|
14
|
+
module: 'CommonJS',
|
|
15
|
+
types: ['node'],
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
// Register paths in tsConfig
|
|
19
|
+
const tsconfigPaths = require('tsconfig-paths');
|
|
20
|
+
const { absoluteBaseUrl: baseUrl, paths } = tsconfigPaths.loadConfig(tsConfig);
|
|
21
|
+
if (baseUrl && paths) {
|
|
22
|
+
tsconfigPaths.register({ baseUrl, paths });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.tsNodeRegister = tsNodeRegister;
|
|
26
|
+
function resolveCustomWebpackConfig(path, tsConfig) {
|
|
27
|
+
tsNodeRegister(path, tsConfig);
|
|
28
|
+
const customWebpackConfig = require(path);
|
|
29
|
+
// If the user provides a configuration in TS file
|
|
30
|
+
// then there are 2 cases for exporing an object. The first one is:
|
|
31
|
+
// `module.exports = { ... }`. And the second one is:
|
|
32
|
+
// `export default { ... }`. The ESM format is compiled into:
|
|
33
|
+
// `{ default: { ... } }`
|
|
34
|
+
return customWebpackConfig.default || customWebpackConfig;
|
|
35
|
+
}
|
|
36
|
+
exports.resolveCustomWebpackConfig = resolveCustomWebpackConfig;
|
|
37
|
+
function isRegistered() {
|
|
38
|
+
return (require.extensions['.ts'] != undefined ||
|
|
39
|
+
require.extensions['.tsx'] != undefined);
|
|
40
|
+
}
|
|
41
|
+
exports.isRegistered = isRegistered;
|
|
42
|
+
//# sourceMappingURL=custom-webpack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-webpack.js","sourceRoot":"","sources":["../../../../../../packages/webpack/src/utils/webpack/custom-webpack.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc,CAAC,OAAe,EAAE,EAAE,QAAiB;IACjE,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAAE,OAAO;IAEnC,6FAA6F;IAC7F,IAAI,YAAY,EAAE;QAAE,OAAO;IAE3B,8BAA8B;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;QAC1B,OAAO,EAAE,QAAQ;QACjB,eAAe,EAAE;YACf,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,CAAC,MAAM,CAAC;SAChB;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,GACvC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,OAAO,IAAI,KAAK,EAAE;QACpB,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KAC5C;AACH,CAAC;AAtBD,wCAsBC;AAED,SAAgB,0BAA0B,CAAC,IAAY,EAAE,QAAgB;IACvE,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE/B,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,kDAAkD;IAClD,mEAAmE;IACnE,qDAAqD;IACrD,6DAA6D;IAC7D,yBAAyB;IACzB,OAAO,mBAAmB,CAAC,OAAO,IAAI,mBAAmB,CAAC;AAC5D,CAAC;AAVD,gEAUC;AACD,SAAgB,YAAY;IAC1B,OAAO,CACL,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,SAAS;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,SAAS,CACxC,CAAC;AACJ,CAAC;AALD,oCAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function interpolateEnvironmentVariablesToIndex(contents: string, deployUrl?: string): string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.interpolateEnvironmentVariablesToIndex = void 0;
|
|
4
|
+
function interpolateEnvironmentVariablesToIndex(contents, deployUrl) {
|
|
5
|
+
const environmentVariables = getClientEnvironment(deployUrl || '');
|
|
6
|
+
return interpolateEnvironmentVariables(contents, environmentVariables);
|
|
7
|
+
}
|
|
8
|
+
exports.interpolateEnvironmentVariablesToIndex = interpolateEnvironmentVariablesToIndex;
|
|
9
|
+
const NX_PREFIX = /^NX_/i;
|
|
10
|
+
function isNxEnvironmentKey(x) {
|
|
11
|
+
return NX_PREFIX.test(x);
|
|
12
|
+
}
|
|
13
|
+
function getClientEnvironment(deployUrl) {
|
|
14
|
+
return Object.keys(process.env)
|
|
15
|
+
.filter(isNxEnvironmentKey)
|
|
16
|
+
.reduce((env, key) => {
|
|
17
|
+
env[key] = process.env[key];
|
|
18
|
+
return env;
|
|
19
|
+
}, {
|
|
20
|
+
NODE_ENV: process.env.NODE_ENV || 'development',
|
|
21
|
+
DEPLOY_URL: deployUrl || process.env.DEPLOY_URL || '',
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function interpolateEnvironmentVariables(documentContents, environmentVariables) {
|
|
25
|
+
let temp = documentContents;
|
|
26
|
+
for (const [key, value] of Object.entries(environmentVariables)) {
|
|
27
|
+
temp = temp.replace(new RegExp(`%${key}%`, 'g'), value);
|
|
28
|
+
}
|
|
29
|
+
return temp;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=interpolate-env-variables-to-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolate-env-variables-to-index.js","sourceRoot":"","sources":["../../../../../../packages/webpack/src/utils/webpack/interpolate-env-variables-to-index.ts"],"names":[],"mappings":";;;AAAA,SAAgB,sCAAsC,CACpD,QAAgB,EAChB,SAAkB;IAElB,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO,+BAA+B,CAAC,QAAQ,EAAE,oBAA2B,CAAC,CAAC;AAChF,CAAC;AAND,wFAMC;AAED,MAAM,SAAS,GAAG,OAAO,CAAC;AAE1B,SAAS,kBAAkB,CAAC,CAAS;IACnC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;SAC5B,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CACL,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC,EACD;QACE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa;QAC/C,UAAU,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;KACtD,CACF,CAAC;AACN,CAAC;AAED,SAAS,+BAA+B,CACtC,gBAAwB,EACxB,oBAA4C;IAE5C,IAAI,IAAI,GAAG,gBAAgB,CAAC;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;QAC/D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;KACzD;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeExtraEntryPoints = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
function normalizeExtraEntryPoints(extraEntryPoints, defaultBundleName) {
|
|
6
|
+
return extraEntryPoints.map((entry) => {
|
|
7
|
+
let normalizedEntry;
|
|
8
|
+
if (typeof entry === 'string') {
|
|
9
|
+
normalizedEntry = {
|
|
10
|
+
input: entry,
|
|
11
|
+
inject: true,
|
|
12
|
+
bundleName: defaultBundleName,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const { inject = true } = entry, newEntry = tslib_1.__rest(entry, ["inject"]);
|
|
17
|
+
let bundleName;
|
|
18
|
+
if (entry.bundleName) {
|
|
19
|
+
bundleName = entry.bundleName;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
bundleName = defaultBundleName;
|
|
23
|
+
}
|
|
24
|
+
normalizedEntry = Object.assign(Object.assign({}, newEntry), { bundleName });
|
|
25
|
+
}
|
|
26
|
+
return normalizedEntry;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
exports.normalizeExtraEntryPoints = normalizeExtraEntryPoints;
|
|
30
|
+
//# sourceMappingURL=normalize-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-entry.js","sourceRoot":"","sources":["../../../../../../packages/webpack/src/utils/webpack/normalize-entry.ts"],"names":[],"mappings":";;;;AAEA,SAAgB,yBAAyB,CACvC,gBAAmC,EACnC,iBAAyB;IAEzB,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpC,IAAI,eAAe,CAAC;QACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,eAAe,GAAG;gBAChB,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,iBAAiB;aAC9B,CAAC;SACH;aAAM;YACL,MAAM,EAAE,MAAM,GAAG,IAAI,KAAkB,KAAK,EAAlB,QAAQ,kBAAK,KAAK,EAAtC,UAA8B,CAAQ,CAAC;YAC7C,IAAI,UAAU,CAAC;YAEf,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;aAC/B;iBAAM;gBACL,UAAU,GAAG,iBAAiB,CAAC;aAChC;YAED,eAAe,mCAAQ,QAAQ,KAAE,UAAU,GAAE,CAAC;SAC/C;QAED,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AA3BD,8DA2BC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateEntryPoints = void 0;
|
|
4
|
+
const normalize_entry_1 = require("./normalize-entry");
|
|
5
|
+
function generateEntryPoints(appConfig) {
|
|
6
|
+
// Add all styles/scripts, except lazy-loaded ones.
|
|
7
|
+
const extraEntryPoints = (extraEntryPoints, defaultBundleName) => {
|
|
8
|
+
const entryPoints = (0, normalize_entry_1.normalizeExtraEntryPoints)(extraEntryPoints, defaultBundleName).map((entry) => entry.bundleName);
|
|
9
|
+
// remove duplicates
|
|
10
|
+
return [...new Set(entryPoints)];
|
|
11
|
+
};
|
|
12
|
+
const entryPoints = [
|
|
13
|
+
'runtime',
|
|
14
|
+
'polyfills',
|
|
15
|
+
'sw-register',
|
|
16
|
+
...extraEntryPoints(appConfig.styles, 'styles'),
|
|
17
|
+
...extraEntryPoints(appConfig.scripts, 'scripts'),
|
|
18
|
+
'vendor',
|
|
19
|
+
'main',
|
|
20
|
+
];
|
|
21
|
+
const duplicates = [
|
|
22
|
+
...new Set(entryPoints.filter((x) => entryPoints.indexOf(x) !== entryPoints.lastIndexOf(x))),
|
|
23
|
+
];
|
|
24
|
+
if (duplicates.length > 0) {
|
|
25
|
+
throw new Error(`Multiple bundles have been named the same: '${duplicates.join(`', '`)}'.`);
|
|
26
|
+
}
|
|
27
|
+
return entryPoints;
|
|
28
|
+
}
|
|
29
|
+
exports.generateEntryPoints = generateEntryPoints;
|
|
30
|
+
//# sourceMappingURL=package-chunk-sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-chunk-sort.js","sourceRoot":"","sources":["../../../../../../packages/webpack/src/utils/webpack/package-chunk-sort.ts"],"names":[],"mappings":";;;AACA,uDAA8D;AAE9D,SAAgB,mBAAmB,CAAC,SAGnC;IACC,mDAAmD;IACnD,MAAM,gBAAgB,GAAG,CACvB,gBAAmC,EACnC,iBAAyB,EACf,EAAE;QACZ,MAAM,WAAW,GAAG,IAAA,2CAAyB,EAC3C,gBAAgB,EAChB,iBAAiB,CAClB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEnC,oBAAoB;QACpB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,SAAS;QACT,WAAW;QACX,aAAa;QACb,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC/C,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC;QACjD,QAAQ;QACR,MAAM;KACP,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,GAAG,CACR,WAAW,CAAC,MAAM,CAChB,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAC7D,CACF;KACF,CAAC;IAEF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,+CAA+C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAC3E,CAAC;KACH;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AA3CD,kDA2CC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LoaderContext } from 'webpack';
|
|
2
|
+
export interface PostcssCliResourcesOptions {
|
|
3
|
+
baseHref?: string;
|
|
4
|
+
deployUrl?: string;
|
|
5
|
+
resourcesOutputPath?: string;
|
|
6
|
+
rebaseRootRelative?: boolean;
|
|
7
|
+
filename: string;
|
|
8
|
+
loader: LoaderContext<unknown>;
|
|
9
|
+
}
|
|
10
|
+
export declare function PostcssCliResources(options: PostcssCliResourcesOptions): {
|
|
11
|
+
postcssPlugin: string;
|
|
12
|
+
Once(root: any): Promise<void[]>;
|
|
13
|
+
};
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostcssCliResources = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const loader_utils_1 = require("loader-utils");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const url = require("url");
|
|
8
|
+
function wrapUrl(url) {
|
|
9
|
+
let wrappedUrl;
|
|
10
|
+
const hasSingleQuotes = url.indexOf("'") >= 0;
|
|
11
|
+
if (hasSingleQuotes) {
|
|
12
|
+
wrappedUrl = `"${url}"`;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
wrappedUrl = `'${url}'`;
|
|
16
|
+
}
|
|
17
|
+
return `url(${wrappedUrl})`;
|
|
18
|
+
}
|
|
19
|
+
function resolve(file, base, resolver) {
|
|
20
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
try {
|
|
22
|
+
return yield resolver(`./${file}`, base);
|
|
23
|
+
}
|
|
24
|
+
catch (_a) {
|
|
25
|
+
return resolver(file, base);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
module.exports.postcss = true;
|
|
30
|
+
function PostcssCliResources(options) {
|
|
31
|
+
const { deployUrl = '', baseHref = '', resourcesOutputPath = '', rebaseRootRelative = false, filename, loader, } = options;
|
|
32
|
+
const dedupeSlashes = (url) => url.replace(/\/\/+/g, '/');
|
|
33
|
+
const process = (inputUrl, context, resourceCache) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
// If root-relative, absolute or protocol relative url, leave as is
|
|
35
|
+
if (/^((?:\w+:)?\/\/|data:|chrome:|#)/.test(inputUrl)) {
|
|
36
|
+
return inputUrl;
|
|
37
|
+
}
|
|
38
|
+
if (!rebaseRootRelative && /^\//.test(inputUrl)) {
|
|
39
|
+
return inputUrl;
|
|
40
|
+
}
|
|
41
|
+
// If starts with a caret, remove and return remainder
|
|
42
|
+
// this supports bypassing asset processing
|
|
43
|
+
if (inputUrl.startsWith('^')) {
|
|
44
|
+
return inputUrl.slice(1);
|
|
45
|
+
}
|
|
46
|
+
const cacheKey = path.resolve(context, inputUrl);
|
|
47
|
+
const cachedUrl = resourceCache.get(cacheKey);
|
|
48
|
+
if (cachedUrl) {
|
|
49
|
+
return cachedUrl;
|
|
50
|
+
}
|
|
51
|
+
if (inputUrl.startsWith('~')) {
|
|
52
|
+
inputUrl = inputUrl.slice(1);
|
|
53
|
+
}
|
|
54
|
+
if (inputUrl.startsWith('/')) {
|
|
55
|
+
let outputUrl = '';
|
|
56
|
+
if (deployUrl.match(/:\/\//) || deployUrl.startsWith('/')) {
|
|
57
|
+
// If deployUrl is absolute or root relative, ignore baseHref & use deployUrl as is.
|
|
58
|
+
outputUrl = `${deployUrl.replace(/\/$/, '')}${inputUrl}`;
|
|
59
|
+
}
|
|
60
|
+
else if (baseHref.match(/:\/\//)) {
|
|
61
|
+
// If baseHref contains a scheme, include it as is.
|
|
62
|
+
outputUrl =
|
|
63
|
+
baseHref.replace(/\/$/, '') +
|
|
64
|
+
dedupeSlashes(`/${deployUrl}/${inputUrl}`);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Join together base-href, deploy-url and the original URL.
|
|
68
|
+
outputUrl = dedupeSlashes(`/${baseHref}/${deployUrl}/${inputUrl}`);
|
|
69
|
+
}
|
|
70
|
+
resourceCache.set(cacheKey, outputUrl);
|
|
71
|
+
return outputUrl;
|
|
72
|
+
}
|
|
73
|
+
const { pathname, hash, search } = url.parse(inputUrl.replace(/\\/g, '/'));
|
|
74
|
+
const resolver = (file, base) => new Promise((resolve, reject) => {
|
|
75
|
+
loader.resolve(base, decodeURI(file), (err, result) => {
|
|
76
|
+
if (err) {
|
|
77
|
+
reject(err);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
resolve(result);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
const result = yield resolve(pathname, context, resolver);
|
|
84
|
+
return new Promise((resolve, reject) => {
|
|
85
|
+
loader.fs.readFile(result, (err, content) => {
|
|
86
|
+
if (err) {
|
|
87
|
+
reject(err);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
let outputPath = (0, loader_utils_1.interpolateName)({ resourcePath: result }, filename, { content });
|
|
91
|
+
if (resourcesOutputPath) {
|
|
92
|
+
outputPath = path.posix.join(resourcesOutputPath, outputPath);
|
|
93
|
+
}
|
|
94
|
+
loader.addDependency(result);
|
|
95
|
+
loader.emitFile(outputPath, content, undefined);
|
|
96
|
+
let outputUrl = outputPath.replace(/\\/g, '/');
|
|
97
|
+
if (hash || search) {
|
|
98
|
+
outputUrl = url.format({ pathname: outputUrl, hash, search });
|
|
99
|
+
}
|
|
100
|
+
const loaderOptions = loader.loaders[loader.loaderIndex].options;
|
|
101
|
+
if (deployUrl && loaderOptions.ident !== 'extracted') {
|
|
102
|
+
outputUrl = url.resolve(deployUrl, outputUrl);
|
|
103
|
+
}
|
|
104
|
+
resourceCache.set(cacheKey, outputUrl);
|
|
105
|
+
resolve(outputUrl);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
return {
|
|
110
|
+
postcssPlugin: 'postcss-cli-resources',
|
|
111
|
+
Once(root) {
|
|
112
|
+
const urlDeclarations = [];
|
|
113
|
+
/**
|
|
114
|
+
* TODO: Explore if this can be rewritten using the new `Declaration()`
|
|
115
|
+
* listener added in postcss v8
|
|
116
|
+
*/
|
|
117
|
+
root.walkDecls((decl) => {
|
|
118
|
+
if (decl.value && decl.value.includes('url')) {
|
|
119
|
+
urlDeclarations.push(decl);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
if (urlDeclarations.length === 0) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const resourceCache = new Map();
|
|
126
|
+
return Promise.all(urlDeclarations.map((decl) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
const value = decl.value;
|
|
128
|
+
const urlRegex = /url\(\s*(?:"([^"]+)"|'([^']+)'|(.+?))\s*\)/g;
|
|
129
|
+
const segments = [];
|
|
130
|
+
let match;
|
|
131
|
+
let lastIndex = 0;
|
|
132
|
+
let modified = false;
|
|
133
|
+
// We want to load it relative to the file that imports
|
|
134
|
+
const inputFile = decl.source && decl.source.input.file;
|
|
135
|
+
const context = (inputFile && path.dirname(inputFile)) || loader.context;
|
|
136
|
+
// tslint:disable-next-line:no-conditional-assignment
|
|
137
|
+
while ((match = urlRegex.exec(value))) {
|
|
138
|
+
const originalUrl = match[1] || match[2] || match[3];
|
|
139
|
+
let processedUrl;
|
|
140
|
+
try {
|
|
141
|
+
processedUrl = yield process(originalUrl, context, resourceCache);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
loader.emitError(decl.error(err.message, { word: originalUrl }));
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if (lastIndex < match.index) {
|
|
148
|
+
segments.push(value.slice(lastIndex, match.index));
|
|
149
|
+
}
|
|
150
|
+
if (!processedUrl || originalUrl === processedUrl) {
|
|
151
|
+
segments.push(match[0]);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
segments.push(wrapUrl(processedUrl));
|
|
155
|
+
modified = true;
|
|
156
|
+
}
|
|
157
|
+
lastIndex = match.index + match[0].length;
|
|
158
|
+
}
|
|
159
|
+
if (lastIndex < value.length) {
|
|
160
|
+
segments.push(value.slice(lastIndex));
|
|
161
|
+
}
|
|
162
|
+
if (modified) {
|
|
163
|
+
decl.value = segments.join('');
|
|
164
|
+
}
|
|
165
|
+
})));
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
exports.PostcssCliResources = PostcssCliResources;
|
|
170
|
+
//# sourceMappingURL=postcss-cli-resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postcss-cli-resources.js","sourceRoot":"","sources":["../../../../../../../packages/webpack/src/utils/webpack/plugins/postcss-cli-resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as webpack from 'webpack';
|
|
2
|
+
export interface ScriptsWebpackPluginOptions {
|
|
3
|
+
name: string;
|
|
4
|
+
sourceMap: boolean;
|
|
5
|
+
scripts: string[];
|
|
6
|
+
filename: string;
|
|
7
|
+
basePath: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class ScriptsWebpackPlugin {
|
|
10
|
+
private options;
|
|
11
|
+
private _lastBuildTime?;
|
|
12
|
+
private _cachedOutput?;
|
|
13
|
+
constructor(options?: Partial<ScriptsWebpackPluginOptions>);
|
|
14
|
+
shouldSkip(compilation: any, scripts: string[]): boolean;
|
|
15
|
+
private _insertOutput;
|
|
16
|
+
apply(compiler: webpack.Compiler): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScriptsWebpackPlugin = void 0;
|
|
4
|
+
const loader_utils_1 = require("loader-utils");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const webpack = require("webpack");
|
|
7
|
+
const Chunk = require('webpack/lib/Chunk');
|
|
8
|
+
const EntryPoint = require('webpack/lib/Entrypoint');
|
|
9
|
+
function addDependencies(compilation, scripts) {
|
|
10
|
+
for (const script of scripts) {
|
|
11
|
+
compilation.fileDependencies.add(script);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function hook(compiler, action) {
|
|
15
|
+
compiler.hooks.thisCompilation.tap('scripts-webpack-plugin', (compilation) => {
|
|
16
|
+
compilation.hooks.additionalAssets.tapAsync('scripts-webpack-plugin', (callback) => action(compilation, callback));
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
class ScriptsWebpackPlugin {
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
this.options = options;
|
|
22
|
+
}
|
|
23
|
+
shouldSkip(compilation, scripts) {
|
|
24
|
+
var _a;
|
|
25
|
+
if (this._lastBuildTime == undefined) {
|
|
26
|
+
this._lastBuildTime = Date.now();
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
for (let i = 0; i < scripts.length; i++) {
|
|
30
|
+
const scriptTime = (_a = compilation.fileTimestamps) === null || _a === void 0 ? void 0 : _a.get(scripts[i]);
|
|
31
|
+
if (!scriptTime || scriptTime > this._lastBuildTime) {
|
|
32
|
+
this._lastBuildTime = Date.now();
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
_insertOutput(compilation, { filename, source }, cached = false) {
|
|
39
|
+
const chunk = new Chunk(this.options.name);
|
|
40
|
+
chunk.rendered = !cached;
|
|
41
|
+
chunk.id = this.options.name;
|
|
42
|
+
chunk.ids = [chunk.id];
|
|
43
|
+
if (chunk.files instanceof Set) {
|
|
44
|
+
chunk.files.add(filename);
|
|
45
|
+
}
|
|
46
|
+
else if (chunk.files instanceof Array) {
|
|
47
|
+
chunk.files.push(filename);
|
|
48
|
+
}
|
|
49
|
+
const entrypoint = new EntryPoint(this.options.name);
|
|
50
|
+
entrypoint.pushChunk(chunk);
|
|
51
|
+
chunk.addGroup(entrypoint);
|
|
52
|
+
compilation.entrypoints.set(this.options.name, entrypoint);
|
|
53
|
+
if (compilation.chunks instanceof Set) {
|
|
54
|
+
compilation.chunks.add(chunk);
|
|
55
|
+
}
|
|
56
|
+
else if (compilation.chunks instanceof Array) {
|
|
57
|
+
compilation.chunks.push(chunk);
|
|
58
|
+
}
|
|
59
|
+
compilation.assets[filename] = source;
|
|
60
|
+
}
|
|
61
|
+
apply(compiler) {
|
|
62
|
+
if (!this.options.scripts || this.options.scripts.length === 0) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const scripts = this.options.scripts
|
|
66
|
+
.filter((script) => !!script)
|
|
67
|
+
.map((script) => path.resolve(this.options.basePath || '', script));
|
|
68
|
+
hook(compiler, (compilation, callback) => {
|
|
69
|
+
if (this.shouldSkip(compilation, scripts)) {
|
|
70
|
+
if (this._cachedOutput) {
|
|
71
|
+
this._insertOutput(compilation, this._cachedOutput, true);
|
|
72
|
+
}
|
|
73
|
+
addDependencies(compilation, scripts);
|
|
74
|
+
callback();
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const sourceGetters = scripts.map((fullPath) => {
|
|
78
|
+
return new Promise((resolve, reject) => {
|
|
79
|
+
compilation.inputFileSystem.readFile(fullPath, (err, data) => {
|
|
80
|
+
if (err) {
|
|
81
|
+
reject(err);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const content = data.toString();
|
|
85
|
+
let source;
|
|
86
|
+
if (this.options.sourceMap) {
|
|
87
|
+
// TODO: Look for source map file (for '.min' scripts, etc.)
|
|
88
|
+
let adjustedPath = fullPath;
|
|
89
|
+
if (this.options.basePath) {
|
|
90
|
+
adjustedPath = path.relative(this.options.basePath, fullPath);
|
|
91
|
+
}
|
|
92
|
+
source = new webpack.sources.OriginalSource(content, adjustedPath);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
source = new webpack.sources.RawSource(content);
|
|
96
|
+
}
|
|
97
|
+
resolve(source);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
Promise.all(sourceGetters)
|
|
102
|
+
.then((sources) => {
|
|
103
|
+
const concatSource = new webpack.sources.ConcatSource();
|
|
104
|
+
sources.forEach((source) => {
|
|
105
|
+
concatSource.add(source);
|
|
106
|
+
concatSource.add('\n;');
|
|
107
|
+
});
|
|
108
|
+
const combinedSource = new webpack.sources.CachedSource(concatSource);
|
|
109
|
+
const filename = (0, loader_utils_1.interpolateName)({ resourcePath: 'scripts.js' }, this.options.filename, { content: combinedSource.source() });
|
|
110
|
+
const output = { filename, source: combinedSource };
|
|
111
|
+
this._insertOutput(compilation, output);
|
|
112
|
+
this._cachedOutput = output;
|
|
113
|
+
addDependencies(compilation, scripts);
|
|
114
|
+
callback();
|
|
115
|
+
})
|
|
116
|
+
.catch((err) => callback(err));
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.ScriptsWebpackPlugin = ScriptsWebpackPlugin;
|
|
121
|
+
//# sourceMappingURL=scripts-webpack-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts-webpack-plugin.js","sourceRoot":"","sources":["../../../../../../../packages/webpack/src/utils/webpack/plugins/scripts-webpack-plugin.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,6BAA6B;AAC7B,mCAAmC;AAEnC,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAerD,SAAS,eAAe,CAAC,WAAgB,EAAE,OAAiB;IAC1D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC1C;AACH,CAAC;AAED,SAAS,IAAI,CACX,QAAa,EACb,MAAmE;IAEnE,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAChC,wBAAwB,EACxB,CAAC,WAAgB,EAAE,EAAE;QACnB,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CACzC,wBAAwB,EACxB,CAAC,QAA+B,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAa,oBAAoB;IAI/B,YAAoB,UAAgD,EAAE;QAAlD,YAAO,GAAP,OAAO,CAA2C;IAAG,CAAC;IAE1E,UAAU,CAAC,WAAgB,EAAE,OAAiB;;QAC5C,IAAI,IAAI,CAAC,cAAc,IAAI,SAAS,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;SACd;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,UAAU,GAAG,MAAA,WAAW,CAAC,cAAc,0CAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE;gBACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CACnB,WAAgB,EAChB,EAAE,QAAQ,EAAE,MAAM,EAAgB,EAClC,MAAM,GAAG,KAAK;QAEd,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7B,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEvB,IAAI,KAAK,CAAC,KAAK,YAAY,GAAG,EAAE;YAC9B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC3B;aAAM,IAAI,KAAK,CAAC,KAAK,YAAY,KAAK,EAAE;YACvC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5B;QAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3B,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE3D,IAAI,WAAW,CAAC,MAAM,YAAY,GAAG,EAAE;YACrC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC/B;aAAM,IAAI,WAAW,CAAC,MAAM,YAAY,KAAK,EAAE;YAC9C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC;QAED,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAA0B;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9D,OAAO;SACR;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;aACjC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAC5B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE;YACvC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE;gBACzC,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;iBAC3D;gBAED,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBACtC,QAAQ,EAAE,CAAC;gBAEX,OAAO;aACR;YAED,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC7C,OAAO,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC7D,WAAW,CAAC,eAAe,CAAC,QAAQ,CAClC,QAAQ,EACR,CAAC,GAAU,EAAE,IAAY,EAAE,EAAE;wBAC3B,IAAI,GAAG,EAAE;4BACP,MAAM,CAAC,GAAG,CAAC,CAAC;4BACZ,OAAO;yBACR;wBAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAEhC,IAAI,MAAM,CAAC;wBACX,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;4BAC1B,4DAA4D;4BAE5D,IAAI,YAAY,GAAG,QAAQ,CAAC;4BAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gCACzB,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;6BAC/D;4BACD,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CACzC,OAAO,EACP,YAAY,CACb,CAAC;yBACH;6BAAM;4BACL,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;yBACjD;wBAED,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClB,CAAC,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;iBACvB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChB,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACxD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACzB,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACzB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBAEH,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBACtE,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAC9B,EAAE,YAAY,EAAE,YAAY,EAAE,EAC9B,IAAI,CAAC,OAAO,CAAC,QAAkB,EAC/B,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,EAAE,CACrC,CAAC;gBAEF,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;gBACpD,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACxC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC5B,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAEtC,QAAQ,EAAE,CAAC;YACb,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AArID,oDAqIC"}
|