@serwist/webpack-plugin 8.1.0 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index.old.cjs → index.cjs} +7 -23
- package/dist/{index.internal.old.cjs → index.internal.cjs} +3 -19
- package/dist/index.internal.js +2 -18
- package/dist/index.js +6 -22
- package/dist/inject-manifest.d.cts +82 -0
- package/dist/inject-manifest.d.ts +1 -1
- package/dist/lib/child-compilation-plugin.d.cts +20 -0
- package/dist/lib/get-asset-hash.d.cts +8 -0
- package/dist/lib/get-asset-hash.d.ts +1 -1
- package/dist/lib/get-manifest-entries-from-compilation.d.cts +6 -0
- package/dist/lib/get-manifest-entries-from-compilation.d.ts +1 -1
- package/dist/lib/get-script-files-for-chunks.d.cts +0 -0
- package/dist/lib/get-sourcemap-asset-name.d.cts +19 -0
- package/dist/lib/relative-to-output-path.d.cts +11 -0
- package/dist/lib/resolve-webpack-url.d.cts +12 -0
- package/dist/relative-to-output-path-5MVPPhSi.js +22 -0
- package/dist/relative-to-output-path-pbrP9MDI.js +20 -0
- package/package.json +9 -9
- /package/dist/{index.old.d.cts → index.d.cts} +0 -0
- /package/dist/{index.internal.old.d.cts → index.internal.d.cts} +0 -0
|
@@ -5,6 +5,7 @@ var stringify = require('fast-json-stable-stringify');
|
|
|
5
5
|
var upath = require('upath');
|
|
6
6
|
var webpack = require('webpack');
|
|
7
7
|
var crypto = require('crypto');
|
|
8
|
+
var relativeToOutputPath = require('./relative-to-output-path-5MVPPhSi.js');
|
|
8
9
|
|
|
9
10
|
const BYTE_UNITS = [
|
|
10
11
|
'B',
|
|
@@ -115,7 +116,7 @@ function prettyBytes(number, options) {
|
|
|
115
116
|
* @returns The MD5 hash of the asset's source.
|
|
116
117
|
*
|
|
117
118
|
* @private
|
|
118
|
-
*/
|
|
119
|
+
*/ const getAssetHash = (asset)=>{
|
|
119
120
|
// If webpack has the asset marked as immutable, then we don't need to
|
|
120
121
|
// use an out-of-band revision for it.
|
|
121
122
|
// See https://github.com/webpack/webpack/issues/9038
|
|
@@ -123,7 +124,7 @@ function prettyBytes(number, options) {
|
|
|
123
124
|
return null;
|
|
124
125
|
}
|
|
125
126
|
return crypto.createHash("md5").update(Buffer.from(asset.source.source())).digest("hex");
|
|
126
|
-
}
|
|
127
|
+
};
|
|
127
128
|
|
|
128
129
|
/*
|
|
129
130
|
Copyright 2018 Google LLC
|
|
@@ -316,7 +317,7 @@ async function getManifestEntriesFromCompilation(compilation, config) {
|
|
|
316
317
|
compilation.warnings.push(new Error(warning));
|
|
317
318
|
}
|
|
318
319
|
// Ensure that the entries are properly sorted by URL.
|
|
319
|
-
const sortedEntries = manifestEntries
|
|
320
|
+
const sortedEntries = manifestEntries?.sort((a, b)=>a.url === b.url ? 0 : a.url > b.url ? 1 : -1);
|
|
320
321
|
return {
|
|
321
322
|
size,
|
|
322
323
|
sortedEntries
|
|
@@ -357,23 +358,6 @@ async function getManifestEntriesFromCompilation(compilation, config) {
|
|
|
357
358
|
return undefined;
|
|
358
359
|
}
|
|
359
360
|
|
|
360
|
-
/**
|
|
361
|
-
* @param compilation The webpack compilation.
|
|
362
|
-
* @param swDest The original swDest value.
|
|
363
|
-
*
|
|
364
|
-
* @returns If swDest was not absolute, the returns swDest as-is.
|
|
365
|
-
* Otherwise, returns swDest relative to the compilation's output path.
|
|
366
|
-
*
|
|
367
|
-
* @private
|
|
368
|
-
*/ function relativeToOutputPath(compilation, swDest) {
|
|
369
|
-
// See https://github.com/jantimon/html-webpack-plugin/pull/266/files#diff-168726dbe96b3ce427e7fedce31bb0bcR38
|
|
370
|
-
if (upath.resolve(swDest) === upath.normalize(swDest)) {
|
|
371
|
-
return upath.relative(compilation.options.output.path, swDest);
|
|
372
|
-
}
|
|
373
|
-
// Otherwise, return swDest as-is.
|
|
374
|
-
return swDest;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
361
|
// Used to keep track of swDest files written by *any* instance of this plugin.
|
|
378
362
|
// See https://github.com/GoogleChrome/workbox/issues/2181
|
|
379
363
|
const _generatedAssetNames = new Set();
|
|
@@ -429,7 +413,7 @@ const _generatedAssetNames = new Set();
|
|
|
429
413
|
if (config.disablePrecacheManifest) {
|
|
430
414
|
return {
|
|
431
415
|
size: 0,
|
|
432
|
-
sortedEntries:
|
|
416
|
+
sortedEntries: undefined,
|
|
433
417
|
manifestString: "undefined"
|
|
434
418
|
};
|
|
435
419
|
}
|
|
@@ -536,7 +520,7 @@ const _generatedAssetNames = new Set();
|
|
|
536
520
|
throw new Error(`Please check your ${this.constructor.name} plugin ` + `configuration:\n${error.message}`);
|
|
537
521
|
}
|
|
538
522
|
}
|
|
539
|
-
this.config.swDest = relativeToOutputPath(compilation, this.config.swDest);
|
|
523
|
+
this.config.swDest = relativeToOutputPath.relativeToOutputPath(compilation, this.config.swDest);
|
|
540
524
|
_generatedAssetNames.add(this.config.swDest);
|
|
541
525
|
if (this.config.compileSrc) {
|
|
542
526
|
await this.performChildCompilation(compilation, parentCompiler);
|
|
@@ -590,7 +574,7 @@ const _generatedAssetNames = new Set();
|
|
|
590
574
|
}
|
|
591
575
|
if (compilation.getLogger) {
|
|
592
576
|
const logger = compilation.getLogger(this.constructor.name);
|
|
593
|
-
logger.info(`The service worker at ${config.swDest ?? ""} will precache ${sortedEntries
|
|
577
|
+
logger.info(`The service worker at ${config.swDest ?? ""} will precache ${sortedEntries?.length ?? 0} URLs, totaling ${prettyBytes(size)}.`);
|
|
594
578
|
}
|
|
595
579
|
}
|
|
596
580
|
}
|
|
@@ -1,24 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var webpack = require('webpack');
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @param compilation The webpack compilation.
|
|
8
|
-
* @param swDest The original swDest value.
|
|
9
|
-
*
|
|
10
|
-
* @returns If swDest was not absolute, the returns swDest as-is.
|
|
11
|
-
* Otherwise, returns swDest relative to the compilation's output path.
|
|
12
|
-
*
|
|
13
|
-
* @private
|
|
14
|
-
*/ function relativeToOutputPath(compilation, swDest) {
|
|
15
|
-
// See https://github.com/jantimon/html-webpack-plugin/pull/266/files#diff-168726dbe96b3ce427e7fedce31bb0bcR38
|
|
16
|
-
if (upath.resolve(swDest) === upath.normalize(swDest)) {
|
|
17
|
-
return upath.relative(compilation.options.output.path, swDest);
|
|
18
|
-
}
|
|
19
|
-
// Otherwise, return swDest as-is.
|
|
20
|
-
return swDest;
|
|
21
|
-
}
|
|
4
|
+
var relativeToOutputPath = require('./relative-to-output-path-5MVPPhSi.js');
|
|
5
|
+
require('upath');
|
|
22
6
|
|
|
23
7
|
/**
|
|
24
8
|
* Compile a file by creating a child of the hooked compiler.
|
|
@@ -39,7 +23,7 @@ var upath = require('upath');
|
|
|
39
23
|
}));
|
|
40
24
|
}
|
|
41
25
|
async performChildCompilation(compilation, parentCompiler) {
|
|
42
|
-
const resolvedDest = relativeToOutputPath(compilation, this.dest);
|
|
26
|
+
const resolvedDest = relativeToOutputPath.relativeToOutputPath(compilation, this.dest);
|
|
43
27
|
const outputOptions = {
|
|
44
28
|
filename: resolvedDest
|
|
45
29
|
};
|
package/dist/index.internal.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
import webpack from 'webpack';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @param compilation The webpack compilation.
|
|
6
|
-
* @param swDest The original swDest value.
|
|
7
|
-
*
|
|
8
|
-
* @returns If swDest was not absolute, the returns swDest as-is.
|
|
9
|
-
* Otherwise, returns swDest relative to the compilation's output path.
|
|
10
|
-
*
|
|
11
|
-
* @private
|
|
12
|
-
*/ function relativeToOutputPath(compilation, swDest) {
|
|
13
|
-
// See https://github.com/jantimon/html-webpack-plugin/pull/266/files#diff-168726dbe96b3ce427e7fedce31bb0bcR38
|
|
14
|
-
if (upath.resolve(swDest) === upath.normalize(swDest)) {
|
|
15
|
-
return upath.relative(compilation.options.output.path, swDest);
|
|
16
|
-
}
|
|
17
|
-
// Otherwise, return swDest as-is.
|
|
18
|
-
return swDest;
|
|
19
|
-
}
|
|
2
|
+
import { r as relativeToOutputPath } from './relative-to-output-path-pbrP9MDI.js';
|
|
3
|
+
import 'upath';
|
|
20
4
|
|
|
21
5
|
/**
|
|
22
6
|
* Compile a file by creating a child of the hooked compiler.
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import stringify from 'fast-json-stable-stringify';
|
|
|
3
3
|
import upath from 'upath';
|
|
4
4
|
import webpack from 'webpack';
|
|
5
5
|
import crypto from 'crypto';
|
|
6
|
+
import { r as relativeToOutputPath } from './relative-to-output-path-pbrP9MDI.js';
|
|
6
7
|
|
|
7
8
|
const BYTE_UNITS = [
|
|
8
9
|
'B',
|
|
@@ -113,7 +114,7 @@ function prettyBytes(number, options) {
|
|
|
113
114
|
* @returns The MD5 hash of the asset's source.
|
|
114
115
|
*
|
|
115
116
|
* @private
|
|
116
|
-
*/
|
|
117
|
+
*/ const getAssetHash = (asset)=>{
|
|
117
118
|
// If webpack has the asset marked as immutable, then we don't need to
|
|
118
119
|
// use an out-of-band revision for it.
|
|
119
120
|
// See https://github.com/webpack/webpack/issues/9038
|
|
@@ -121,7 +122,7 @@ function prettyBytes(number, options) {
|
|
|
121
122
|
return null;
|
|
122
123
|
}
|
|
123
124
|
return crypto.createHash("md5").update(Buffer.from(asset.source.source())).digest("hex");
|
|
124
|
-
}
|
|
125
|
+
};
|
|
125
126
|
|
|
126
127
|
/*
|
|
127
128
|
Copyright 2018 Google LLC
|
|
@@ -314,7 +315,7 @@ async function getManifestEntriesFromCompilation(compilation, config) {
|
|
|
314
315
|
compilation.warnings.push(new Error(warning));
|
|
315
316
|
}
|
|
316
317
|
// Ensure that the entries are properly sorted by URL.
|
|
317
|
-
const sortedEntries = manifestEntries
|
|
318
|
+
const sortedEntries = manifestEntries?.sort((a, b)=>a.url === b.url ? 0 : a.url > b.url ? 1 : -1);
|
|
318
319
|
return {
|
|
319
320
|
size,
|
|
320
321
|
sortedEntries
|
|
@@ -355,23 +356,6 @@ async function getManifestEntriesFromCompilation(compilation, config) {
|
|
|
355
356
|
return undefined;
|
|
356
357
|
}
|
|
357
358
|
|
|
358
|
-
/**
|
|
359
|
-
* @param compilation The webpack compilation.
|
|
360
|
-
* @param swDest The original swDest value.
|
|
361
|
-
*
|
|
362
|
-
* @returns If swDest was not absolute, the returns swDest as-is.
|
|
363
|
-
* Otherwise, returns swDest relative to the compilation's output path.
|
|
364
|
-
*
|
|
365
|
-
* @private
|
|
366
|
-
*/ function relativeToOutputPath(compilation, swDest) {
|
|
367
|
-
// See https://github.com/jantimon/html-webpack-plugin/pull/266/files#diff-168726dbe96b3ce427e7fedce31bb0bcR38
|
|
368
|
-
if (upath.resolve(swDest) === upath.normalize(swDest)) {
|
|
369
|
-
return upath.relative(compilation.options.output.path, swDest);
|
|
370
|
-
}
|
|
371
|
-
// Otherwise, return swDest as-is.
|
|
372
|
-
return swDest;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
359
|
// Used to keep track of swDest files written by *any* instance of this plugin.
|
|
376
360
|
// See https://github.com/GoogleChrome/workbox/issues/2181
|
|
377
361
|
const _generatedAssetNames = new Set();
|
|
@@ -427,7 +411,7 @@ const _generatedAssetNames = new Set();
|
|
|
427
411
|
if (config.disablePrecacheManifest) {
|
|
428
412
|
return {
|
|
429
413
|
size: 0,
|
|
430
|
-
sortedEntries:
|
|
414
|
+
sortedEntries: undefined,
|
|
431
415
|
manifestString: "undefined"
|
|
432
416
|
};
|
|
433
417
|
}
|
|
@@ -588,7 +572,7 @@ const _generatedAssetNames = new Set();
|
|
|
588
572
|
}
|
|
589
573
|
if (compilation.getLogger) {
|
|
590
574
|
const logger = compilation.getLogger(this.constructor.name);
|
|
591
|
-
logger.info(`The service worker at ${config.swDest ?? ""} will precache ${sortedEntries
|
|
575
|
+
logger.info(`The service worker at ${config.swDest ?? ""} will precache ${sortedEntries?.length ?? 0} URLs, totaling ${prettyBytes(size)}.`);
|
|
592
576
|
}
|
|
593
577
|
}
|
|
594
578
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { WebpackInjectManifestOptions } from "@serwist/build";
|
|
2
|
+
import webpack from "webpack";
|
|
3
|
+
/**
|
|
4
|
+
* This class supports compiling a service worker file provided via `swSrc`,
|
|
5
|
+
* and injecting into that service worker a list of URLs and revision
|
|
6
|
+
* information for precaching based on the webpack asset pipeline.
|
|
7
|
+
*
|
|
8
|
+
* Use an instance of `InjectManifest` in the
|
|
9
|
+
* [`plugins` array](https://webpack.js.org/concepts/plugins/#usage) of a
|
|
10
|
+
* webpack config.
|
|
11
|
+
*
|
|
12
|
+
* In addition to injecting the manifest, this plugin will perform a compilation
|
|
13
|
+
* of the `swSrc` file, using the options from the main webpack configuration.
|
|
14
|
+
*
|
|
15
|
+
* ```
|
|
16
|
+
* // The following lists some common options; see the rest of the documentation
|
|
17
|
+
* // for the full set of options and defaults.
|
|
18
|
+
* new InjectManifest({
|
|
19
|
+
* exclude: [/.../, '...'],
|
|
20
|
+
* maximumFileSizeToCacheInBytes: ...,
|
|
21
|
+
* swSrc: '...',
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare class InjectManifest {
|
|
26
|
+
protected config: WebpackInjectManifestOptions;
|
|
27
|
+
private alreadyCalled;
|
|
28
|
+
/**
|
|
29
|
+
* Creates an instance of InjectManifest.
|
|
30
|
+
*/
|
|
31
|
+
constructor(config: WebpackInjectManifestOptions);
|
|
32
|
+
/**
|
|
33
|
+
* @param compiler default compiler object passed from webpack
|
|
34
|
+
*
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
37
|
+
propagateWebpackConfig(compiler: webpack.Compiler): void;
|
|
38
|
+
/**
|
|
39
|
+
* `getManifestEntriesFromCompilation` with a few additional checks.
|
|
40
|
+
*
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
getManifestEntries(compilation: webpack.Compilation, config: WebpackInjectManifestOptions): Promise<{
|
|
44
|
+
size: number;
|
|
45
|
+
sortedEntries: import("@serwist/build").ManifestEntry[] | undefined;
|
|
46
|
+
manifestString: string;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* @param compiler default compiler object passed from webpack
|
|
50
|
+
*
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
apply(compiler: webpack.Compiler): void;
|
|
54
|
+
/**
|
|
55
|
+
* @param compilation The webpack compilation.
|
|
56
|
+
* @param parentCompiler The webpack parent compiler.
|
|
57
|
+
*
|
|
58
|
+
* @private
|
|
59
|
+
*/
|
|
60
|
+
performChildCompilation(compilation: webpack.Compilation, parentCompiler: webpack.Compiler): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* @param compilation The webpack compilation.
|
|
63
|
+
* @param parentCompiler The webpack parent compiler.
|
|
64
|
+
*
|
|
65
|
+
* @private
|
|
66
|
+
*/
|
|
67
|
+
addSrcToAssets(compilation: webpack.Compilation, parentCompiler: webpack.Compiler): void;
|
|
68
|
+
/**
|
|
69
|
+
* @param compilation The webpack compilation.
|
|
70
|
+
* @param parentCompiler The webpack parent compiler.
|
|
71
|
+
*
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
handleMake(compilation: webpack.Compilation, parentCompiler: webpack.Compiler): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* @param compilation The webpack compilation.
|
|
77
|
+
*
|
|
78
|
+
* @private
|
|
79
|
+
*/
|
|
80
|
+
addAssets(compilation: webpack.Compilation): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
export { InjectManifest };
|
|
@@ -42,7 +42,7 @@ declare class InjectManifest {
|
|
|
42
42
|
*/
|
|
43
43
|
getManifestEntries(compilation: webpack.Compilation, config: WebpackInjectManifestOptions): Promise<{
|
|
44
44
|
size: number;
|
|
45
|
-
sortedEntries: import("@serwist/build").ManifestEntry[];
|
|
45
|
+
sortedEntries: import("@serwist/build").ManifestEntry[] | undefined;
|
|
46
46
|
manifestString: string;
|
|
47
47
|
}>;
|
|
48
48
|
/**
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { WebpackPluginInstance } from "webpack";
|
|
2
|
+
import webpack from "webpack";
|
|
3
|
+
export interface ChildCompilationPluginOptions {
|
|
4
|
+
src: string;
|
|
5
|
+
dest: string;
|
|
6
|
+
plugins?: WebpackPluginInstance[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Compile a file by creating a child of the hooked compiler.
|
|
10
|
+
*
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
13
|
+
export declare class ChildCompilationPlugin implements WebpackPluginInstance {
|
|
14
|
+
src: string;
|
|
15
|
+
dest: string;
|
|
16
|
+
plugins: WebpackPluginInstance[] | undefined;
|
|
17
|
+
constructor({ src, dest, plugins }: ChildCompilationPluginOptions);
|
|
18
|
+
apply(compiler: webpack.Compiler): void;
|
|
19
|
+
performChildCompilation(compilation: webpack.Compilation, parentCompiler: webpack.Compiler): Promise<void>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ManifestEntry, WebpackInjectManifestOptions } from "@serwist/build";
|
|
2
|
+
import type { Compilation } from "webpack";
|
|
3
|
+
export declare function getManifestEntriesFromCompilation(compilation: Compilation, config: WebpackInjectManifestOptions): Promise<{
|
|
4
|
+
size: number;
|
|
5
|
+
sortedEntries: ManifestEntry[] | undefined;
|
|
6
|
+
}>;
|
|
@@ -2,5 +2,5 @@ import type { ManifestEntry, WebpackInjectManifestOptions } from "@serwist/build
|
|
|
2
2
|
import type { Compilation } from "webpack";
|
|
3
3
|
export declare function getManifestEntriesFromCompilation(compilation: Compilation, config: WebpackInjectManifestOptions): Promise<{
|
|
4
4
|
size: number;
|
|
5
|
-
sortedEntries: ManifestEntry[];
|
|
5
|
+
sortedEntries: ManifestEntry[] | undefined;
|
|
6
6
|
}>;
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Compilation } from "webpack";
|
|
2
|
+
/**
|
|
3
|
+
* If our bundled swDest file contains a sourcemap, we would invalidate that
|
|
4
|
+
* mapping if we just replaced injectionPoint with the stringified manifest.
|
|
5
|
+
* Instead, we need to update the swDest contents as well as the sourcemap
|
|
6
|
+
* at the same time.
|
|
7
|
+
*
|
|
8
|
+
* See https://github.com/GoogleChrome/workbox/issues/2235
|
|
9
|
+
*
|
|
10
|
+
* @param compilation The current webpack compilation.
|
|
11
|
+
* @param swContents The contents of the swSrc file, which may or
|
|
12
|
+
* may not include a valid sourcemap comment.
|
|
13
|
+
* @param swDest The configured swDest value.
|
|
14
|
+
* @returns If the swContents contains a valid sourcemap
|
|
15
|
+
* comment pointing to an asset present in the compilation, this will return the
|
|
16
|
+
* name of that asset. Otherwise, it will return undefined.
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
19
|
+
export declare function getSourcemapAssetName(compilation: Compilation, swContents: string, swDest: string): string | undefined;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Compilation } from "webpack";
|
|
2
|
+
/**
|
|
3
|
+
* @param compilation The webpack compilation.
|
|
4
|
+
* @param swDest The original swDest value.
|
|
5
|
+
*
|
|
6
|
+
* @returns If swDest was not absolute, the returns swDest as-is.
|
|
7
|
+
* Otherwise, returns swDest relative to the compilation's output path.
|
|
8
|
+
*
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
export declare function relativeToOutputPath(compilation: Compilation, swDest: string): string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves a url in the way that webpack would (with string concatenation)
|
|
3
|
+
*
|
|
4
|
+
* Use publicPath + filePath instead of url.resolve(publicPath, filePath) see:
|
|
5
|
+
* https://webpack.js.org/configuration/output/#output-publicpath
|
|
6
|
+
*
|
|
7
|
+
* @param publicPath The publicPath value from webpack's compilation.
|
|
8
|
+
* @param paths File paths to join
|
|
9
|
+
* @returns Joined file path
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveWebpackURL(publicPath: string, ...paths: Array<string>): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var upath = require('upath');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @param compilation The webpack compilation.
|
|
7
|
+
* @param swDest The original swDest value.
|
|
8
|
+
*
|
|
9
|
+
* @returns If swDest was not absolute, the returns swDest as-is.
|
|
10
|
+
* Otherwise, returns swDest relative to the compilation's output path.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
*/ function relativeToOutputPath(compilation, swDest) {
|
|
14
|
+
// See https://github.com/jantimon/html-webpack-plugin/pull/266/files#diff-168726dbe96b3ce427e7fedce31bb0bcR38
|
|
15
|
+
if (upath.resolve(swDest) === upath.normalize(swDest)) {
|
|
16
|
+
return upath.relative(compilation.options.output.path, swDest);
|
|
17
|
+
}
|
|
18
|
+
// Otherwise, return swDest as-is.
|
|
19
|
+
return swDest;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
exports.relativeToOutputPath = relativeToOutputPath;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import upath from 'upath';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param compilation The webpack compilation.
|
|
5
|
+
* @param swDest The original swDest value.
|
|
6
|
+
*
|
|
7
|
+
* @returns If swDest was not absolute, the returns swDest as-is.
|
|
8
|
+
* Otherwise, returns swDest relative to the compilation's output path.
|
|
9
|
+
*
|
|
10
|
+
* @private
|
|
11
|
+
*/ function relativeToOutputPath(compilation, swDest) {
|
|
12
|
+
// See https://github.com/jantimon/html-webpack-plugin/pull/266/files#diff-168726dbe96b3ce427e7fedce31bb0bcR38
|
|
13
|
+
if (upath.resolve(swDest) === upath.normalize(swDest)) {
|
|
14
|
+
return upath.relative(compilation.options.output.path, swDest);
|
|
15
|
+
}
|
|
16
|
+
// Otherwise, return swDest as-is.
|
|
17
|
+
return swDest;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { relativeToOutputPath as r };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serwist/webpack-plugin",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A plugin for your Webpack build process, helping you generate a manifest of local files that should be precached.",
|
|
6
6
|
"files": [
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"repository": "serwist/serwist",
|
|
26
26
|
"bugs": "https://github.com/serwist/serwist/issues",
|
|
27
|
-
"homepage": "https://
|
|
27
|
+
"homepage": "https://serwist.vercel.app",
|
|
28
28
|
"module": "./dist/index.js",
|
|
29
|
-
"main": "./dist/index.
|
|
29
|
+
"main": "./dist/index.cjs",
|
|
30
30
|
"types": "./dist/index.d.ts",
|
|
31
31
|
"typesVersions": {
|
|
32
32
|
"*": {
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"default": "./dist/index.js"
|
|
43
43
|
},
|
|
44
44
|
"require": {
|
|
45
|
-
"types": "./dist/index.
|
|
46
|
-
"default": "./dist/index.
|
|
45
|
+
"types": "./dist/index.d.cts",
|
|
46
|
+
"default": "./dist/index.cjs"
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
"./internal": {
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"default": "./dist/index.internal.js"
|
|
53
53
|
},
|
|
54
54
|
"require": {
|
|
55
|
-
"types": "./dist/index.internal.
|
|
56
|
-
"default": "./dist/index.internal.
|
|
55
|
+
"types": "./dist/index.internal.d.cts",
|
|
56
|
+
"default": "./dist/index.internal.cjs"
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
59
|
"./package.json": "./package.json"
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"fast-json-stable-stringify": "2.1.0",
|
|
63
63
|
"rollup": "4.9.1",
|
|
64
64
|
"upath": "2.0.1",
|
|
65
|
-
"@serwist/build": "8.
|
|
65
|
+
"@serwist/build": "8.2.0"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"webpack": "4.4.0 || ^5.9.0"
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@types/node": "20.10.5",
|
|
72
72
|
"@types/webpack": "5.28.5",
|
|
73
73
|
"pretty-bytes": "6.1.1",
|
|
74
|
-
"@serwist/constants": "8.
|
|
74
|
+
"@serwist/constants": "8.2.0"
|
|
75
75
|
},
|
|
76
76
|
"scripts": {
|
|
77
77
|
"build": "rimraf dist && cross-env NODE_ENV=production rollup --config rollup.config.js",
|
|
File without changes
|
|
File without changes
|