@nuxt/webpack-builder 3.21.0 → 3.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/THIRD-PARTY-LICENSES.md +33 -0
- package/dist/index.mjs +130 -148
- package/dist/loaders/vue-module-identifier.mjs +1 -4
- package/package.json +26 -26
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
<a href="https://nuxt.com"><img width="830" height="213" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/banner.svg" alt="Nuxt banner"></a>
|
|
2
2
|
|
|
3
3
|
# Nuxt
|
|
4
4
|
|
|
5
5
|
<p>
|
|
6
|
-
<a href="https://
|
|
7
|
-
<a href="https://
|
|
6
|
+
<a href="https://npmx.dev/package/nuxt"><img src="https://npmx.dev/api/registry/badge/version/nuxt" alt="Version"></a>
|
|
7
|
+
<a href="https://npmx.dev/package/nuxt"><img src="https://npmx.dev/api/registry/badge/downloads/nuxt" alt="Downloads"></a>
|
|
8
8
|
<a href="https://github.com/nuxt/nuxt/blob/main/LICENSE"><img src="https://img.shields.io/github/license/nuxt/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="License"></a>
|
|
9
9
|
<a href="https://nuxt.com/modules"><img src="https://img.shields.io/badge/dynamic/json?url=https://nuxt.com/api/v1/modules&query=$.stats.modules&label=Modules&style=flat&colorA=18181B&colorB=28CF8D" alt="Modules"></a>
|
|
10
10
|
<a href="https://nuxt.com"><img src="https://img.shields.io/badge/Nuxt%20Docs-18181B?logo=nuxt" alt="Website"></a>
|
|
11
11
|
<a href="https://chat.nuxt.dev"><img src="https://img.shields.io/badge/Nuxt%20Discord-18181B?logo=discord" alt="Discord"></a>
|
|
12
|
-
<a href="https://securityscorecards.dev/"><img src="https://api.securityscorecards.dev/projects/github.com/nuxt/nuxt/badge" alt="Nuxt openssf scorecard score"></a>
|
|
12
|
+
<a href="https://securityscorecards.dev/viewer/?uri=github.com/nuxt/nuxt"><img src="https://api.securityscorecards.dev/projects/github.com/nuxt/nuxt/badge" alt="Nuxt openssf scorecard score"></a>
|
|
13
13
|
<a href="https://deepwiki.com/nuxt/nuxt"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
|
|
14
14
|
</p>
|
|
15
15
|
|
|
@@ -111,7 +111,7 @@ Follow the docs to [Set Up Your Local Development Environment](https://nuxt.com/
|
|
|
111
111
|
## <a name="follow-us">🔗 Follow Us</a>
|
|
112
112
|
|
|
113
113
|
<p valign="center">
|
|
114
|
-
<a href="https://go.nuxt.com/discord"><img width="
|
|
114
|
+
<a href="https://go.nuxt.com/discord"><img width="20" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/discord.svg" alt="Discord"></a> <a href="https://go.nuxt.com/x"><img width="20" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/twitter.svg" alt="Twitter"></a> <a href="https://go.nuxt.com/github"><img width="20" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/github.svg" alt="GitHub"></a> <a href="https://go.nuxt.com/bluesky"><img width="20" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/bluesky.svg" alt="Bluesky"></a>
|
|
115
115
|
</p>
|
|
116
116
|
|
|
117
117
|
## <a name="license">⚖️ License</a>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Licenses of Bundled Dependencies
|
|
2
|
+
|
|
3
|
+
The published artifact additionally contains code with the following licenses:
|
|
4
|
+
MIT
|
|
5
|
+
|
|
6
|
+
# Bundled Dependencies
|
|
7
|
+
|
|
8
|
+
## nuxt
|
|
9
|
+
|
|
10
|
+
License: MIT
|
|
11
|
+
Repository: https://github.com/nuxt/nuxt
|
|
12
|
+
|
|
13
|
+
> The MIT License (MIT)
|
|
14
|
+
>
|
|
15
|
+
> Copyright (c) 2016-present - Nuxt Team
|
|
16
|
+
>
|
|
17
|
+
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
18
|
+
> of this software and associated documentation files (the "Software"), to deal
|
|
19
|
+
> in the Software without restriction, including without limitation the rights
|
|
20
|
+
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
21
|
+
> copies of the Software, and to permit persons to whom the Software is
|
|
22
|
+
> furnished to do so, subject to the following conditions:
|
|
23
|
+
>
|
|
24
|
+
> The above copyright notice and this permission notice shall be included in all
|
|
25
|
+
> copies or substantial portions of the Software.
|
|
26
|
+
>
|
|
27
|
+
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
28
|
+
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
29
|
+
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
30
|
+
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
31
|
+
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32
|
+
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
33
|
+
> SOFTWARE.
|
package/dist/index.mjs
CHANGED
|
@@ -3,16 +3,12 @@ import pify from "pify";
|
|
|
3
3
|
import webpackDevMiddleware from "webpack-dev-middleware";
|
|
4
4
|
import webpackHotMiddleware from "webpack-hot-middleware";
|
|
5
5
|
import { defu } from "defu";
|
|
6
|
-
import { joinURL,
|
|
6
|
+
import { joinURL, withTrailingSlash } from "ufo";
|
|
7
7
|
import { directoryToURL, logger, resolveAlias, useNitro, useNuxt } from "@nuxt/kit";
|
|
8
8
|
import { createUnplugin } from "unplugin";
|
|
9
9
|
import MagicString from "magic-string";
|
|
10
|
-
import webpack from "
|
|
11
|
-
import MiniCssExtractPlugin from "mini-css-extract-plugin";
|
|
12
|
-
import WebpackBarPlugin from "webpackbar";
|
|
13
|
-
import TsCheckerPlugin from "fork-ts-checker-webpack-plugin";
|
|
10
|
+
import { MiniCssExtractPlugin, TsCheckerPlugin, WebpackBarPlugin, builder, webpack } from "#builder";
|
|
14
11
|
import { existsSync, readFileSync } from "node:fs";
|
|
15
|
-
import { pathToFileURL } from "node:url";
|
|
16
12
|
import { isAbsolute, join, normalize, relative, resolve } from "pathe";
|
|
17
13
|
import { genArrayFromRaw, genObjectFromRawEntries, genString } from "knitwork";
|
|
18
14
|
import { compileStyle, parse } from "@vue/compiler-sfc";
|
|
@@ -36,7 +32,6 @@ import { normalizeWebpackManifest, precomputeDependencies } from "vue-bundle-ren
|
|
|
36
32
|
import { hash } from "ohash";
|
|
37
33
|
import { serialize } from "seroval";
|
|
38
34
|
import { parseNodeModulePath } from "mlly";
|
|
39
|
-
|
|
40
35
|
//#region src/plugins/dynamic-base.ts
|
|
41
36
|
const defaults = {
|
|
42
37
|
globalPublicPath: "__webpack_public_path__",
|
|
@@ -67,11 +62,6 @@ const DynamicBasePlugin = createUnplugin((options = {}) => {
|
|
|
67
62
|
}
|
|
68
63
|
};
|
|
69
64
|
});
|
|
70
|
-
|
|
71
|
-
//#endregion
|
|
72
|
-
//#region builder.mjs
|
|
73
|
-
const builder = "webpack";
|
|
74
|
-
|
|
75
65
|
//#endregion
|
|
76
66
|
//#region src/plugins/chunk.ts
|
|
77
67
|
const pluginName = "ChunkErrorPlugin";
|
|
@@ -105,22 +95,40 @@ if (typeof ${ensureChunk} !== "undefined") {
|
|
|
105
95
|
`;
|
|
106
96
|
}
|
|
107
97
|
};
|
|
108
|
-
|
|
98
|
+
//#endregion
|
|
99
|
+
//#region ../nuxt/src/core/utils/plugins.ts
|
|
100
|
+
/**
|
|
101
|
+
* Split a bundler module ID into its pathname and search (query) parts.
|
|
102
|
+
*
|
|
103
|
+
* Module IDs from Vite/webpack are already-normalized filesystem paths
|
|
104
|
+
* that may carry query strings (e.g. `?vue&type=style&lang=css`).
|
|
105
|
+
*/
|
|
106
|
+
function parseModuleId(id) {
|
|
107
|
+
const qIndex = id.indexOf("?");
|
|
108
|
+
if (qIndex === -1) return {
|
|
109
|
+
pathname: id,
|
|
110
|
+
search: ""
|
|
111
|
+
};
|
|
112
|
+
return {
|
|
113
|
+
pathname: id.slice(0, qIndex),
|
|
114
|
+
search: id.slice(qIndex)
|
|
115
|
+
};
|
|
116
|
+
}
|
|
109
117
|
//#endregion
|
|
110
118
|
//#region src/plugins/ssr-styles.ts
|
|
111
119
|
const CSS_URL_RE = /url\((['"]?)(\/[^)]+?)\1\)/g;
|
|
112
120
|
const isVueFile = (id) => /\.vue(?:\?|$)/.test(id);
|
|
113
121
|
const isCSSLike = (name) => /\.(?:css|scss|sass|less|styl(?:us)?|postcss|pcss)(?:\?|$)/.test(name);
|
|
114
|
-
function normalizePath(nuxt
|
|
122
|
+
function normalizePath(nuxt, id) {
|
|
115
123
|
if (!id) return null;
|
|
116
|
-
const { pathname } =
|
|
117
|
-
const rel = relative(nuxt
|
|
124
|
+
const { pathname } = parseModuleId(id);
|
|
125
|
+
const rel = relative(nuxt.options.srcDir, pathname);
|
|
118
126
|
if (rel.startsWith("..")) return null;
|
|
119
127
|
return rel;
|
|
120
128
|
}
|
|
121
129
|
function resolveFilePath(id) {
|
|
122
130
|
if (!id) return null;
|
|
123
|
-
return
|
|
131
|
+
return parseModuleId(normalize(id)).pathname || null;
|
|
124
132
|
}
|
|
125
133
|
function sanitizeStyleAssetName(rel) {
|
|
126
134
|
return rel.replace(/[\\/]/g, "_").replace(/\.{2,}/g, "_");
|
|
@@ -134,12 +142,12 @@ function extractVueStyles(filePath) {
|
|
|
134
142
|
const styles = [];
|
|
135
143
|
const scopeId = createHash("sha256").update(filePath).digest("hex").slice(0, 8);
|
|
136
144
|
for (let i = 0; i < descriptor.styles.length; i++) {
|
|
137
|
-
const style
|
|
145
|
+
const style = descriptor.styles[i];
|
|
138
146
|
const result = compileStyle({
|
|
139
|
-
source: style
|
|
147
|
+
source: style.content,
|
|
140
148
|
filename: filePath,
|
|
141
149
|
id: `data-v-${scopeId}`,
|
|
142
|
-
scoped: style
|
|
150
|
+
scoped: style.scoped
|
|
143
151
|
});
|
|
144
152
|
if (!result.errors.length && result.code) styles.push(normalizeCSSContent(result.code));
|
|
145
153
|
}
|
|
@@ -153,10 +161,10 @@ var SSRStylesPlugin = class {
|
|
|
153
161
|
clientCSSByIssuer = /* @__PURE__ */ new Map();
|
|
154
162
|
chunksWithInlinedCSS = /* @__PURE__ */ new Set();
|
|
155
163
|
globalCSSPaths = /* @__PURE__ */ new Set();
|
|
156
|
-
constructor(nuxt
|
|
157
|
-
this.nuxt = nuxt
|
|
164
|
+
constructor(nuxt) {
|
|
165
|
+
this.nuxt = nuxt;
|
|
158
166
|
this.globalCSSPaths = this.resolveGlobalCSS();
|
|
159
|
-
nuxt
|
|
167
|
+
nuxt.hook("build:manifest", (manifest) => {
|
|
160
168
|
for (const [id, chunk] of Object.entries(manifest)) {
|
|
161
169
|
if (chunk.isEntry && chunk.src) this.chunksWithInlinedCSS.add(chunk.src);
|
|
162
170
|
else if (this.chunksWithInlinedCSS.has(id)) chunk.css &&= [];
|
|
@@ -182,9 +190,9 @@ var SSRStylesPlugin = class {
|
|
|
182
190
|
isPublicAsset(url, nitro) {
|
|
183
191
|
const cleaned = url.replace(/[?#].*$/, "");
|
|
184
192
|
for (const dir of nitro.options.publicAssets) {
|
|
185
|
-
const base
|
|
186
|
-
if (!url.startsWith(base
|
|
187
|
-
if (existsSync(cleaned.replace(base
|
|
193
|
+
const base = withTrailingSlash(dir.baseURL || "/");
|
|
194
|
+
if (!url.startsWith(base)) continue;
|
|
195
|
+
if (existsSync(cleaned.replace(base, withTrailingSlash(dir.dir)))) return true;
|
|
188
196
|
}
|
|
189
197
|
return false;
|
|
190
198
|
}
|
|
@@ -247,11 +255,6 @@ var SSRStylesPlugin = class {
|
|
|
247
255
|
}
|
|
248
256
|
return null;
|
|
249
257
|
}
|
|
250
|
-
normalizeResourcePath(resource) {
|
|
251
|
-
if (!resource) return null;
|
|
252
|
-
const withoutQuery = resource.split("?")[0];
|
|
253
|
-
return resolveFilePath(withoutQuery);
|
|
254
|
-
}
|
|
255
258
|
apply(compiler) {
|
|
256
259
|
if (this.nuxt.options.dev) return;
|
|
257
260
|
const isClient = compiler.options.name === "client";
|
|
@@ -264,8 +267,8 @@ var SSRStylesPlugin = class {
|
|
|
264
267
|
});
|
|
265
268
|
}
|
|
266
269
|
emitServerStyles(compilation) {
|
|
267
|
-
const { webpack
|
|
268
|
-
const stage = webpack
|
|
270
|
+
const { webpack } = compilation.compiler;
|
|
271
|
+
const stage = webpack.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE;
|
|
269
272
|
compilation.hooks.processAssets.tap({
|
|
270
273
|
name: "SSRStylesPlugin",
|
|
271
274
|
stage
|
|
@@ -295,10 +298,10 @@ var SSRStylesPlugin = class {
|
|
|
295
298
|
if (vueStyles.length) collected.set(rel, new Set(vueStyles));
|
|
296
299
|
}
|
|
297
300
|
const emitted = {};
|
|
298
|
-
const rawSource = webpack
|
|
301
|
+
const rawSource = webpack.sources.RawSource;
|
|
299
302
|
for (const [rel, cssSet] of collected.entries()) {
|
|
300
303
|
if (!cssSet.size) continue;
|
|
301
|
-
const transformed = Array.from(cssSet).map((style
|
|
304
|
+
const transformed = Array.from(cssSet).map((style) => this.rewriteStyle(style, nitro));
|
|
302
305
|
const needsPublicAssets = transformed.some((t) => t.needsPublicAsset);
|
|
303
306
|
const needsBuildAssets = transformed.some((t) => t.needsBuildAsset);
|
|
304
307
|
const imports = [];
|
|
@@ -365,8 +368,8 @@ var SSRStylesPlugin = class {
|
|
|
365
368
|
});
|
|
366
369
|
}
|
|
367
370
|
collectCSS(compilation) {
|
|
368
|
-
const { webpack
|
|
369
|
-
const stage = compilation.compiler.options.name === "server" ? webpack
|
|
371
|
+
const { webpack } = compilation.compiler;
|
|
372
|
+
const stage = compilation.compiler.options.name === "server" ? webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS : webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER;
|
|
370
373
|
const chunkCSSMeta = /* @__PURE__ */ new Map();
|
|
371
374
|
compilation.hooks.processAssets.tap({
|
|
372
375
|
name: "SSRStylesPlugin",
|
|
@@ -425,7 +428,6 @@ var SSRStylesPlugin = class {
|
|
|
425
428
|
return cssChunks;
|
|
426
429
|
}
|
|
427
430
|
};
|
|
428
|
-
|
|
429
431
|
//#endregion
|
|
430
432
|
//#region src/utils/mfs.ts
|
|
431
433
|
function createMFS() {
|
|
@@ -435,24 +437,22 @@ function createMFS() {
|
|
|
435
437
|
_fs.readFile = pify(_fs.readFile);
|
|
436
438
|
return _fs;
|
|
437
439
|
}
|
|
438
|
-
|
|
439
440
|
//#endregion
|
|
440
441
|
//#region src/utils/index.ts
|
|
441
442
|
/** @since 3.9.0 */
|
|
442
443
|
function toArray(value) {
|
|
443
444
|
return Array.isArray(value) ? value : [value];
|
|
444
445
|
}
|
|
445
|
-
|
|
446
446
|
//#endregion
|
|
447
447
|
//#region src/utils/config.ts
|
|
448
|
-
function createWebpackConfigContext(nuxt
|
|
448
|
+
function createWebpackConfigContext(nuxt) {
|
|
449
449
|
return {
|
|
450
|
-
nuxt
|
|
451
|
-
options: nuxt
|
|
452
|
-
userConfig: nuxt
|
|
450
|
+
nuxt,
|
|
451
|
+
options: nuxt.options,
|
|
452
|
+
userConfig: nuxt.options.webpack,
|
|
453
453
|
config: {},
|
|
454
454
|
name: "base",
|
|
455
|
-
isDev: nuxt
|
|
455
|
+
isDev: nuxt.options.dev,
|
|
456
456
|
isServer: false,
|
|
457
457
|
isClient: false,
|
|
458
458
|
alias: {},
|
|
@@ -464,15 +464,14 @@ async function applyPresets(ctx, presets) {
|
|
|
464
464
|
else await preset(ctx);
|
|
465
465
|
}
|
|
466
466
|
function fileName(ctx, key) {
|
|
467
|
-
let fileName
|
|
468
|
-
if (typeof fileName
|
|
469
|
-
if (typeof fileName
|
|
470
|
-
const hash
|
|
471
|
-
if (hash
|
|
467
|
+
let fileName = ctx.userConfig.filenames[key];
|
|
468
|
+
if (typeof fileName === "function") fileName = fileName(ctx);
|
|
469
|
+
if (typeof fileName === "string" && ctx.options.dev) {
|
|
470
|
+
const hash = /\[(chunkhash|contenthash|hash)(?::\d+)?\]/.exec(fileName);
|
|
471
|
+
if (hash) logger.warn(`Notice: Please do not use ${hash[1]} in dev mode to prevent memory leak`);
|
|
472
472
|
}
|
|
473
|
-
return fileName
|
|
473
|
+
return fileName;
|
|
474
474
|
}
|
|
475
|
-
|
|
476
475
|
//#endregion
|
|
477
476
|
//#region src/presets/assets.ts
|
|
478
477
|
function assets(ctx) {
|
|
@@ -505,7 +504,6 @@ function assets(ctx) {
|
|
|
505
504
|
}]
|
|
506
505
|
});
|
|
507
506
|
}
|
|
508
|
-
|
|
509
507
|
//#endregion
|
|
510
508
|
//#region src/plugins/warning-ignore.ts
|
|
511
509
|
var WarningIgnorePlugin = class {
|
|
@@ -519,7 +517,6 @@ var WarningIgnorePlugin = class {
|
|
|
519
517
|
});
|
|
520
518
|
}
|
|
521
519
|
};
|
|
522
|
-
|
|
523
520
|
//#endregion
|
|
524
521
|
//#region src/plugins/vue/util.ts
|
|
525
522
|
/**
|
|
@@ -536,7 +533,6 @@ const extractQueryPartJS = (file) => isJSRegExp.exec(file)?.[1];
|
|
|
536
533
|
const isCSSRegExp = /\.css(?:\?[^.]+)?$/;
|
|
537
534
|
const isCSS = (file) => isCSSRegExp.test(file);
|
|
538
535
|
const isHotUpdate = (file) => file.includes("hot-update");
|
|
539
|
-
|
|
540
536
|
//#endregion
|
|
541
537
|
//#region src/plugins/rollup-compat-dynamic-import.ts
|
|
542
538
|
const DYNAMIC_IMPORT_RE = /import\([^)]*\+\s*__webpack_require__[^+]*\)\.then/;
|
|
@@ -554,18 +550,18 @@ var RollupCompatDynamicImportPlugin = class {
|
|
|
554
550
|
compilation.hooks.processAssets.tapAsync({
|
|
555
551
|
name: "RollupCompatDynamicImportPlugin",
|
|
556
552
|
stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_INLINE
|
|
557
|
-
}, (assets
|
|
553
|
+
}, (assets, callback) => {
|
|
558
554
|
try {
|
|
559
555
|
const targetFiles = /* @__PURE__ */ new Set();
|
|
560
556
|
for (const chunk of compilation.chunks) if (chunk.canBeInitial() || chunk.hasRuntime()) for (const file of chunk.files || []) targetFiles.add(file);
|
|
561
|
-
for (const [filename, asset] of Object.entries(assets
|
|
557
|
+
for (const [filename, asset] of Object.entries(assets)) {
|
|
562
558
|
if (!isJS(filename)) continue;
|
|
563
559
|
if (!targetFiles.has(filename)) continue;
|
|
564
560
|
const source = asset.source();
|
|
565
561
|
const originalCode = typeof source === "string" ? source : source.toString();
|
|
566
562
|
if (!DYNAMIC_IMPORT_RE.test(originalCode)) continue;
|
|
567
563
|
const transformedCode = this.transformDynamicImports(originalCode);
|
|
568
|
-
if (transformedCode !== originalCode) assets
|
|
564
|
+
if (transformedCode !== originalCode) assets[filename] = new compiler.webpack.sources.RawSource(transformedCode);
|
|
569
565
|
}
|
|
570
566
|
this.generateDynamicImportHelper(compilation);
|
|
571
567
|
callback();
|
|
@@ -615,7 +611,6 @@ export function _rollupDynamicImport(chunkId) {
|
|
|
615
611
|
`;
|
|
616
612
|
}
|
|
617
613
|
};
|
|
618
|
-
|
|
619
614
|
//#endregion
|
|
620
615
|
//#region src/presets/base.ts
|
|
621
616
|
async function base(ctx) {
|
|
@@ -788,7 +783,6 @@ const statsMap = {
|
|
|
788
783
|
info: "normal",
|
|
789
784
|
verbose: "verbose"
|
|
790
785
|
};
|
|
791
|
-
|
|
792
786
|
//#endregion
|
|
793
787
|
//#region src/presets/esbuild.ts
|
|
794
788
|
function esbuild(ctx) {
|
|
@@ -818,7 +812,6 @@ function esbuild(ctx) {
|
|
|
818
812
|
}
|
|
819
813
|
});
|
|
820
814
|
}
|
|
821
|
-
|
|
822
815
|
//#endregion
|
|
823
816
|
//#region src/presets/pug.ts
|
|
824
817
|
function pug(ctx) {
|
|
@@ -836,7 +829,6 @@ function pug(ctx) {
|
|
|
836
829
|
}] }]
|
|
837
830
|
});
|
|
838
831
|
}
|
|
839
|
-
|
|
840
832
|
//#endregion
|
|
841
833
|
//#region src/utils/postcss.ts
|
|
842
834
|
const isPureObject = (obj) => obj !== null && !Array.isArray(obj) && typeof obj === "object";
|
|
@@ -844,27 +836,27 @@ function sortPlugins({ plugins, order }) {
|
|
|
844
836
|
const names = Object.keys(plugins);
|
|
845
837
|
return typeof order === "function" ? order(names) : order || names;
|
|
846
838
|
}
|
|
847
|
-
async function getPostcssConfig(nuxt
|
|
848
|
-
if (!nuxt
|
|
849
|
-
const postcssOptions = defu({}, nuxt
|
|
839
|
+
async function getPostcssConfig(nuxt) {
|
|
840
|
+
if (!nuxt.options.webpack.postcss || !nuxt.options.postcss) return false;
|
|
841
|
+
const postcssOptions = defu({}, nuxt.options.postcss, {
|
|
850
842
|
plugins: {
|
|
851
843
|
"postcss-import": { resolve: createResolver({
|
|
852
|
-
alias: { ...nuxt
|
|
853
|
-
modules: nuxt
|
|
844
|
+
alias: { ...nuxt.options.alias },
|
|
845
|
+
modules: nuxt.options.modulesDir
|
|
854
846
|
}) },
|
|
855
847
|
"postcss-url": {}
|
|
856
848
|
},
|
|
857
|
-
sourceMap: nuxt
|
|
849
|
+
sourceMap: nuxt.options.webpack.cssSourceMap
|
|
858
850
|
});
|
|
859
|
-
const jiti = createJiti(nuxt
|
|
851
|
+
const jiti = createJiti(nuxt.options.rootDir, { alias: nuxt.options.alias });
|
|
860
852
|
if (!Array.isArray(postcssOptions.plugins) && isPureObject(postcssOptions.plugins)) {
|
|
861
853
|
const plugins = [];
|
|
862
|
-
for (const pluginName
|
|
863
|
-
const pluginOptions = postcssOptions.plugins[pluginName
|
|
854
|
+
for (const pluginName of sortPlugins(postcssOptions)) {
|
|
855
|
+
const pluginOptions = postcssOptions.plugins[pluginName];
|
|
864
856
|
if (!pluginOptions) continue;
|
|
865
857
|
let pluginFn;
|
|
866
|
-
for (const parentURL of nuxt
|
|
867
|
-
pluginFn = await jiti.import(pluginName
|
|
858
|
+
for (const parentURL of nuxt.options.modulesDir) {
|
|
859
|
+
pluginFn = await jiti.import(pluginName, {
|
|
868
860
|
parentURL: parentURL.replace(/\/node_modules\/?$/, ""),
|
|
869
861
|
try: true,
|
|
870
862
|
default: true
|
|
@@ -874,17 +866,16 @@ async function getPostcssConfig(nuxt$1) {
|
|
|
874
866
|
break;
|
|
875
867
|
}
|
|
876
868
|
}
|
|
877
|
-
if (typeof pluginFn !== "function") console.warn(`[nuxt] could not import postcss plugin \`${pluginName
|
|
869
|
+
if (typeof pluginFn !== "function") console.warn(`[nuxt] could not import postcss plugin \`${pluginName}\`. Please report this as a bug.`);
|
|
878
870
|
}
|
|
879
871
|
postcssOptions.plugins = plugins;
|
|
880
872
|
}
|
|
881
873
|
return {
|
|
882
|
-
sourceMap: nuxt
|
|
883
|
-
...nuxt
|
|
874
|
+
sourceMap: nuxt.options.webpack.cssSourceMap,
|
|
875
|
+
...nuxt.options.webpack.postcss,
|
|
884
876
|
postcssOptions
|
|
885
877
|
};
|
|
886
878
|
}
|
|
887
|
-
|
|
888
879
|
//#endregion
|
|
889
880
|
//#region src/presets/style.ts
|
|
890
881
|
async function style(ctx) {
|
|
@@ -966,7 +957,6 @@ async function createPostcssLoadersRule(ctx) {
|
|
|
966
957
|
options: config
|
|
967
958
|
};
|
|
968
959
|
}
|
|
969
|
-
|
|
970
960
|
//#endregion
|
|
971
961
|
//#region src/plugins/vue/client.ts
|
|
972
962
|
/**
|
|
@@ -990,9 +980,9 @@ var VueSSRClientPlugin = class {
|
|
|
990
980
|
const stats = compilation.getStats().toJson();
|
|
991
981
|
const context = this.nuxt.options.srcDir;
|
|
992
982
|
const initialFiles = /* @__PURE__ */ new Set();
|
|
993
|
-
for (const { assets
|
|
994
|
-
if (!assets
|
|
995
|
-
for (const asset of assets
|
|
983
|
+
for (const { assets } of Object.values(stats.entrypoints)) {
|
|
984
|
+
if (!assets) continue;
|
|
985
|
+
for (const asset of assets) {
|
|
996
986
|
const file = asset.name;
|
|
997
987
|
if ((isJS(file) || isCSS(file)) && !isHotUpdate(file)) initialFiles.add(file);
|
|
998
988
|
}
|
|
@@ -1038,11 +1028,11 @@ var VueSSRClientPlugin = class {
|
|
|
1038
1028
|
const files = Array.from(filesSet);
|
|
1039
1029
|
webpackManifest.modules[relativeId] = files;
|
|
1040
1030
|
if (Array.isArray(m.modules)) for (const concatenatedModule of m.modules) {
|
|
1041
|
-
const relativeId
|
|
1042
|
-
webpackManifest.modules[relativeId
|
|
1031
|
+
const relativeId = this.getRelativeModuleId(concatenatedModule.identifier, context);
|
|
1032
|
+
webpackManifest.modules[relativeId] ||= files;
|
|
1043
1033
|
}
|
|
1044
1034
|
if (stats.modules) {
|
|
1045
|
-
for (const m
|
|
1035
|
+
for (const m of stats.modules) if (m.assets?.length && m.chunks?.includes(cid)) files.push(...m.assets.map(fileToIndex));
|
|
1046
1036
|
}
|
|
1047
1037
|
}
|
|
1048
1038
|
const manifest = normalizeWebpackManifest(webpackManifest);
|
|
@@ -1055,7 +1045,6 @@ var VueSSRClientPlugin = class {
|
|
|
1055
1045
|
});
|
|
1056
1046
|
}
|
|
1057
1047
|
};
|
|
1058
|
-
|
|
1059
1048
|
//#endregion
|
|
1060
1049
|
//#region src/plugins/vue/server.ts
|
|
1061
1050
|
const JS_MAP_RE = /\.js\.map$/;
|
|
@@ -1070,7 +1059,7 @@ var VueSSRServerPlugin = class {
|
|
|
1070
1059
|
compilation.hooks.processAssets.tapAsync({
|
|
1071
1060
|
name: "VueSSRServerPlugin",
|
|
1072
1061
|
stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL
|
|
1073
|
-
}, (assets
|
|
1062
|
+
}, (assets, cb) => {
|
|
1074
1063
|
const stats = compilation.getStats().toJson();
|
|
1075
1064
|
const [entryName] = Object.keys(stats.entrypoints);
|
|
1076
1065
|
const entryInfo = stats.entrypoints[entryName];
|
|
@@ -1079,24 +1068,24 @@ var VueSSRServerPlugin = class {
|
|
|
1079
1068
|
if (entryAssets.length > 1) throw new Error("Server-side bundle should have one single entry file. Avoid using CommonsChunkPlugin in the server config.");
|
|
1080
1069
|
const [entry] = entryAssets;
|
|
1081
1070
|
if (!entry || typeof entry.name !== "string") throw new Error(`Entry "${entryName}" not found. Did you specify the correct entry option?`);
|
|
1082
|
-
const bundle
|
|
1071
|
+
const bundle = {
|
|
1083
1072
|
entry: entry.name,
|
|
1084
1073
|
files: {},
|
|
1085
1074
|
maps: {}
|
|
1086
1075
|
};
|
|
1087
1076
|
for (const asset of stats.assets) if (isJS(asset.name)) {
|
|
1088
1077
|
const queryPart = extractQueryPartJS(asset.name);
|
|
1089
|
-
if (queryPart !== void 0) bundle
|
|
1090
|
-
else bundle
|
|
1091
|
-
} else if (JS_MAP_RE.test(asset.name)) bundle
|
|
1092
|
-
else delete assets
|
|
1093
|
-
const src = JSON.stringify(bundle
|
|
1094
|
-
assets
|
|
1078
|
+
if (queryPart !== void 0) bundle.files[asset.name] = asset.name.replace(queryPart, "");
|
|
1079
|
+
else bundle.files[asset.name] = asset.name;
|
|
1080
|
+
} else if (JS_MAP_RE.test(asset.name)) bundle.maps[asset.name.replace(/\.map$/, "")] = asset.name;
|
|
1081
|
+
else delete assets[asset.name];
|
|
1082
|
+
const src = JSON.stringify(bundle, null, 2);
|
|
1083
|
+
assets[this.options.filename] = {
|
|
1095
1084
|
source: () => src,
|
|
1096
1085
|
size: () => src.length
|
|
1097
1086
|
};
|
|
1098
1087
|
const mjsSrc = "export default " + src;
|
|
1099
|
-
assets
|
|
1088
|
+
assets[this.options.filename.replace(".json", ".mjs")] = {
|
|
1100
1089
|
source: () => mjsSrc,
|
|
1101
1090
|
map: () => null,
|
|
1102
1091
|
size: () => mjsSrc.length
|
|
@@ -1106,7 +1095,6 @@ var VueSSRServerPlugin = class {
|
|
|
1106
1095
|
});
|
|
1107
1096
|
}
|
|
1108
1097
|
};
|
|
1109
|
-
|
|
1110
1098
|
//#endregion
|
|
1111
1099
|
//#region src/presets/vue.ts
|
|
1112
1100
|
function vue(ctx) {
|
|
@@ -1138,7 +1126,6 @@ function vue(ctx) {
|
|
|
1138
1126
|
"__VUE_PROD_HYDRATION_MISMATCH_DETAILS__": ctx.nuxt.options.debug && ctx.nuxt.options.debug.hydration
|
|
1139
1127
|
}));
|
|
1140
1128
|
}
|
|
1141
|
-
|
|
1142
1129
|
//#endregion
|
|
1143
1130
|
//#region src/presets/nuxt.ts
|
|
1144
1131
|
async function nuxt(ctx) {
|
|
@@ -1151,7 +1138,6 @@ async function nuxt(ctx) {
|
|
|
1151
1138
|
vue
|
|
1152
1139
|
]);
|
|
1153
1140
|
}
|
|
1154
|
-
|
|
1155
1141
|
//#endregion
|
|
1156
1142
|
//#region src/configs/client.ts
|
|
1157
1143
|
async function client(ctx) {
|
|
@@ -1259,7 +1245,6 @@ function clientPlugins(ctx) {
|
|
|
1259
1245
|
if (!ctx.nuxt.options.test && (ctx.nuxt.options.typescript.typeCheck === true || ctx.nuxt.options.typescript.typeCheck === "build" && !ctx.nuxt.options.dev)) ctx.config.plugins.push(new TsCheckerPlugin({ logger }));
|
|
1260
1246
|
}
|
|
1261
1247
|
}
|
|
1262
|
-
|
|
1263
1248
|
//#endregion
|
|
1264
1249
|
//#region src/presets/node.ts
|
|
1265
1250
|
function node(ctx) {
|
|
@@ -1290,7 +1275,6 @@ function node(ctx) {
|
|
|
1290
1275
|
maxAssetSize: Number.POSITIVE_INFINITY
|
|
1291
1276
|
};
|
|
1292
1277
|
}
|
|
1293
|
-
|
|
1294
1278
|
//#endregion
|
|
1295
1279
|
//#region src/configs/server.ts
|
|
1296
1280
|
const assetPattern = /\.(?:css|s[ca]ss|png|jpe?g|gif|svg|woff2?|eot|ttf|otf|webp|webm|mp4|ogv)(?:\?.*)?$/i;
|
|
@@ -1382,117 +1366,116 @@ function serverPlugins(ctx) {
|
|
|
1382
1366
|
}));
|
|
1383
1367
|
if (!ctx.nuxt.options.test && (ctx.nuxt.options.typescript.typeCheck === true || ctx.nuxt.options.typescript.typeCheck === "build" && !ctx.nuxt.options.dev)) ctx.config.plugins.push(new TsCheckerPlugin({ logger }));
|
|
1384
1368
|
}
|
|
1385
|
-
|
|
1386
1369
|
//#endregion
|
|
1387
1370
|
//#region src/webpack.ts
|
|
1388
|
-
const bundle = async (nuxt
|
|
1389
|
-
const webpackConfigs = await Promise.all([client, ...nuxt
|
|
1390
|
-
const ctx = createWebpackConfigContext(nuxt
|
|
1391
|
-
ctx.userConfig = defu(nuxt
|
|
1371
|
+
const bundle = async (nuxt) => {
|
|
1372
|
+
const webpackConfigs = await Promise.all([client, ...nuxt.options.ssr ? [server] : []].map(async (preset) => {
|
|
1373
|
+
const ctx = createWebpackConfigContext(nuxt);
|
|
1374
|
+
ctx.userConfig = defu(nuxt.options.webpack[`$${preset.name}`], ctx.userConfig);
|
|
1392
1375
|
await applyPresets(ctx, preset);
|
|
1393
1376
|
return ctx.config;
|
|
1394
1377
|
}));
|
|
1395
1378
|
/** Remove Nitro rollup plugin for handling dynamic imports from webpack chunks */
|
|
1396
|
-
if (!nuxt
|
|
1379
|
+
if (!nuxt.options.dev) useNitro().hooks.hook("rollup:before", (_nitro, config) => {
|
|
1397
1380
|
const plugins = config.plugins;
|
|
1398
1381
|
const existingPlugin = plugins.findIndex((i) => i && "name" in i && i.name === "dynamic-require");
|
|
1399
1382
|
if (existingPlugin >= 0) plugins.splice(existingPlugin, 1);
|
|
1400
1383
|
});
|
|
1401
|
-
await nuxt
|
|
1402
|
-
const mfs = nuxt
|
|
1403
|
-
const ssrStylesPlugin = nuxt
|
|
1384
|
+
await nuxt.callHook(`${builder}:config`, webpackConfigs);
|
|
1385
|
+
const mfs = nuxt.options.dev ? createMFS() : null;
|
|
1386
|
+
const ssrStylesPlugin = nuxt.options.ssr && !nuxt.options.dev && nuxt.options.features.inlineStyles ? new SSRStylesPlugin(nuxt) : null;
|
|
1404
1387
|
for (const config of webpackConfigs) {
|
|
1405
|
-
config.plugins.push(DynamicBasePlugin.webpack({ sourcemap: !!nuxt
|
|
1406
|
-
if (config.name === "client" && nuxt
|
|
1388
|
+
config.plugins.push(DynamicBasePlugin.webpack({ sourcemap: !!nuxt.options.sourcemap[config.name] }));
|
|
1389
|
+
if (config.name === "client" && nuxt.options.experimental.emitRouteChunkError && nuxt.options.builder !== "@nuxt/rspack-builder") config.plugins.push(new ChunkErrorPlugin());
|
|
1407
1390
|
if (ssrStylesPlugin) config.plugins.push(ssrStylesPlugin);
|
|
1408
1391
|
}
|
|
1409
|
-
await nuxt
|
|
1392
|
+
await nuxt.callHook(`${builder}:configResolved`, webpackConfigs);
|
|
1410
1393
|
const compilers = webpackConfigs.map((config) => {
|
|
1411
1394
|
const compiler = webpack(config);
|
|
1412
|
-
if (nuxt
|
|
1395
|
+
if (nuxt.options.dev && compiler) compiler.outputFileSystem = mfs;
|
|
1413
1396
|
return compiler;
|
|
1414
1397
|
});
|
|
1415
|
-
nuxt
|
|
1416
|
-
for (const compiler of compilers) await new Promise((resolve
|
|
1398
|
+
nuxt.hook("close", async () => {
|
|
1399
|
+
for (const compiler of compilers) await new Promise((resolve) => compiler.close(resolve));
|
|
1417
1400
|
});
|
|
1418
|
-
if (nuxt
|
|
1401
|
+
if (nuxt.options.dev) {
|
|
1419
1402
|
await Promise.all(compilers.map((c) => compile(c)));
|
|
1420
1403
|
return;
|
|
1421
1404
|
}
|
|
1422
1405
|
for (const c of compilers) await compile(c);
|
|
1423
1406
|
};
|
|
1424
1407
|
async function createDevMiddleware(compiler) {
|
|
1425
|
-
const nuxt
|
|
1408
|
+
const nuxt = useNuxt();
|
|
1426
1409
|
logger.debug("Creating webpack middleware...");
|
|
1427
1410
|
const devMiddleware = webpackDevMiddleware(compiler, {
|
|
1428
|
-
publicPath: joinURL(nuxt
|
|
1411
|
+
publicPath: joinURL(nuxt.options.app.baseURL, nuxt.options.app.buildAssetsDir),
|
|
1429
1412
|
outputFileSystem: compiler.outputFileSystem,
|
|
1430
1413
|
stats: "none",
|
|
1431
|
-
...nuxt
|
|
1414
|
+
...nuxt.options.webpack.devMiddleware
|
|
1432
1415
|
});
|
|
1433
|
-
nuxt
|
|
1434
|
-
const { client: _client, ...hotMiddlewareOptions } = nuxt
|
|
1416
|
+
nuxt.hook("close", () => pify(devMiddleware.close.bind(devMiddleware))());
|
|
1417
|
+
const { client: _client, ...hotMiddlewareOptions } = nuxt.options.webpack.hotMiddleware || {};
|
|
1435
1418
|
const hotMiddleware = webpackHotMiddleware(compiler, {
|
|
1436
1419
|
log: false,
|
|
1437
1420
|
heartbeat: 1e4,
|
|
1438
|
-
path: joinURL(nuxt
|
|
1421
|
+
path: joinURL(nuxt.options.app.baseURL, "__webpack_hmr", compiler.options.name),
|
|
1439
1422
|
...hotMiddlewareOptions
|
|
1440
1423
|
});
|
|
1441
1424
|
const devHandler = wdmToH3Handler(devMiddleware);
|
|
1442
|
-
await nuxt
|
|
1425
|
+
await nuxt.callHook("server:devHandler", defineEventHandler(async (event) => {
|
|
1443
1426
|
const body = await devHandler(event);
|
|
1444
1427
|
if (body !== void 0) return body;
|
|
1445
1428
|
const { req, res } = "runtime" in event ? event.runtime.node : event.node;
|
|
1446
|
-
await new Promise((resolve
|
|
1429
|
+
await new Promise((resolve, reject) => hotMiddleware(req, res, (err) => err ? reject(err) : resolve()));
|
|
1447
1430
|
}), { cors: () => true });
|
|
1448
1431
|
return devMiddleware;
|
|
1449
1432
|
}
|
|
1450
1433
|
function wdmToH3Handler(devMiddleware) {
|
|
1451
1434
|
return defineEventHandler(async (event) => {
|
|
1452
1435
|
const { req, res } = "runtime" in event ? event.runtime.node : event.node;
|
|
1453
|
-
if (req.headers["sec-fetch-mode"] === "no-cors" && req.headers["sec-fetch-site"] === "cross-site")
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
}
|
|
1458
|
-
return await new Promise((resolve
|
|
1436
|
+
if (req.headers["sec-fetch-mode"] === "no-cors" && req.headers["sec-fetch-site"] === "cross-site") {
|
|
1437
|
+
res.statusCode = 403;
|
|
1438
|
+
res.end("Forbidden");
|
|
1439
|
+
return;
|
|
1440
|
+
}
|
|
1441
|
+
return await new Promise((resolve, reject) => {
|
|
1459
1442
|
res.stream = (stream) => {
|
|
1460
|
-
resolve
|
|
1443
|
+
resolve(stream);
|
|
1461
1444
|
};
|
|
1462
1445
|
res.send = (data) => {
|
|
1463
|
-
resolve
|
|
1446
|
+
resolve(data);
|
|
1464
1447
|
};
|
|
1465
1448
|
res.finish = (data) => {
|
|
1466
|
-
resolve
|
|
1449
|
+
resolve(data);
|
|
1467
1450
|
};
|
|
1468
1451
|
devMiddleware(req, res, (err) => {
|
|
1469
1452
|
if (err) reject(err);
|
|
1470
|
-
else resolve
|
|
1453
|
+
else resolve(void 0);
|
|
1471
1454
|
});
|
|
1472
1455
|
});
|
|
1473
1456
|
});
|
|
1474
1457
|
}
|
|
1475
1458
|
async function compile(compiler) {
|
|
1476
|
-
const nuxt
|
|
1477
|
-
await nuxt
|
|
1459
|
+
const nuxt = useNuxt();
|
|
1460
|
+
await nuxt.callHook(`${builder}:compile`, {
|
|
1478
1461
|
name: compiler.options.name,
|
|
1479
1462
|
compiler
|
|
1480
1463
|
});
|
|
1481
|
-
compiler.hooks.done.tap("load-resources", async (stats
|
|
1482
|
-
await nuxt
|
|
1464
|
+
compiler.hooks.done.tap("load-resources", async (stats) => {
|
|
1465
|
+
await nuxt.callHook(`${builder}:compiled`, {
|
|
1483
1466
|
name: compiler.options.name,
|
|
1484
1467
|
compiler,
|
|
1485
|
-
stats
|
|
1468
|
+
stats
|
|
1486
1469
|
});
|
|
1487
1470
|
});
|
|
1488
|
-
if (nuxt
|
|
1471
|
+
if (nuxt.options.dev) {
|
|
1489
1472
|
const compilersWatching = [];
|
|
1490
|
-
nuxt
|
|
1473
|
+
nuxt.hook("close", async () => {
|
|
1491
1474
|
await Promise.all(compilersWatching.map((watching) => watching && pify(watching.close.bind(watching))()));
|
|
1492
1475
|
});
|
|
1493
|
-
if (compiler.options.name === "client") return new Promise((resolve
|
|
1476
|
+
if (compiler.options.name === "client") return new Promise((resolve, reject) => {
|
|
1494
1477
|
compiler.hooks.done.tap("nuxt-dev", () => {
|
|
1495
|
-
resolve
|
|
1478
|
+
resolve(null);
|
|
1496
1479
|
});
|
|
1497
1480
|
compiler.hooks.failed.tap("nuxt-errorlog", (err) => {
|
|
1498
1481
|
reject(err);
|
|
@@ -1501,15 +1484,15 @@ async function compile(compiler) {
|
|
|
1501
1484
|
if (devMiddleware.context.watching) compilersWatching.push(devMiddleware.context.watching);
|
|
1502
1485
|
});
|
|
1503
1486
|
});
|
|
1504
|
-
return new Promise((resolve
|
|
1505
|
-
const watching = compiler.watch(nuxt
|
|
1487
|
+
return new Promise((resolve, reject) => {
|
|
1488
|
+
const watching = compiler.watch(nuxt.options.watchers.webpack, (err) => {
|
|
1506
1489
|
if (err) return reject(err);
|
|
1507
|
-
resolve
|
|
1490
|
+
resolve(null);
|
|
1508
1491
|
});
|
|
1509
1492
|
compilersWatching.push(watching);
|
|
1510
1493
|
});
|
|
1511
1494
|
}
|
|
1512
|
-
const stats = await new Promise((resolve
|
|
1495
|
+
const stats = await new Promise((resolve, reject) => compiler.run((err, stats) => err ? reject(err) : resolve(stats)));
|
|
1513
1496
|
if (stats.hasErrors()) {
|
|
1514
1497
|
const error = /* @__PURE__ */ new Error("Nuxt build error");
|
|
1515
1498
|
error.stack = stats.toString("errors-only");
|
|
@@ -1519,6 +1502,5 @@ async function compile(compiler) {
|
|
|
1519
1502
|
function defineEventHandler(handler) {
|
|
1520
1503
|
return Object.assign(handler, { __is_handler__: true });
|
|
1521
1504
|
}
|
|
1522
|
-
|
|
1523
1505
|
//#endregion
|
|
1524
|
-
export { bundle };
|
|
1506
|
+
export { bundle };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { normalize, relative } from "pathe";
|
|
2
|
-
|
|
3
2
|
//#region src/loaders/vue-module-identifier.ts
|
|
4
3
|
const vueModuleIdentifierLoader = function(source) {
|
|
5
4
|
this.cacheable?.();
|
|
@@ -10,7 +9,5 @@ const vueModuleIdentifierLoader = function(source) {
|
|
|
10
9
|
const moduleId = normalize(context ? relative(context, resourcePath) : resourcePath).replace(/^\.\//, "").replace(/\\/g, "/");
|
|
11
10
|
return source + `\n;__exports__.__moduleIdentifier = ${JSON.stringify(moduleId)};`;
|
|
12
11
|
};
|
|
13
|
-
var vue_module_identifier_default = vueModuleIdentifierLoader;
|
|
14
|
-
|
|
15
12
|
//#endregion
|
|
16
|
-
export {
|
|
13
|
+
export { vueModuleIdentifierLoader as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxt/webpack-builder",
|
|
3
|
-
"version": "3.21.
|
|
3
|
+
"version": "3.21.2",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/nuxt/nuxt.git",
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@nuxt/friendly-errors-webpack-plugin": "^2.6.0",
|
|
28
|
-
"@vue/compiler-sfc": "3.5.
|
|
29
|
-
"autoprefixer": "^10.4.
|
|
30
|
-
"css-loader": "^7.1.
|
|
31
|
-
"css-minimizer-webpack-plugin": "^
|
|
32
|
-
"cssnano": "^7.1.
|
|
28
|
+
"@vue/compiler-sfc": "3.5.30",
|
|
29
|
+
"autoprefixer": "^10.4.27",
|
|
30
|
+
"css-loader": "^7.1.4",
|
|
31
|
+
"css-minimizer-webpack-plugin": "^8.0.0",
|
|
32
|
+
"cssnano": "^7.1.3",
|
|
33
33
|
"defu": "^6.1.4",
|
|
34
34
|
"esbuild-loader": "^4.4.2",
|
|
35
35
|
"escape-string-regexp": "^5.0.0",
|
|
@@ -39,52 +39,52 @@
|
|
|
39
39
|
"jiti": "^2.6.1",
|
|
40
40
|
"knitwork": "^1.3.0",
|
|
41
41
|
"magic-string": "^0.30.21",
|
|
42
|
-
"memfs": "^4.56.
|
|
43
|
-
"mini-css-extract-plugin": "^2.10.
|
|
44
|
-
"mlly": "^1.8.
|
|
42
|
+
"memfs": "^4.56.11",
|
|
43
|
+
"mini-css-extract-plugin": "^2.10.1",
|
|
44
|
+
"mlly": "^1.8.1",
|
|
45
45
|
"ohash": "^2.0.11",
|
|
46
46
|
"pathe": "^2.0.3",
|
|
47
47
|
"pify": "^6.1.0",
|
|
48
|
-
"postcss": "^8.5.
|
|
48
|
+
"postcss": "^8.5.8",
|
|
49
49
|
"postcss-import": "^16.1.1",
|
|
50
50
|
"postcss-import-resolver": "^2.0.0",
|
|
51
|
-
"postcss-loader": "^8.2.
|
|
51
|
+
"postcss-loader": "^8.2.1",
|
|
52
52
|
"postcss-url": "^10.1.3",
|
|
53
53
|
"pug-plain-loader": "^1.1.0",
|
|
54
|
-
"seroval": "^1.
|
|
55
|
-
"std-env": "^
|
|
54
|
+
"seroval": "^1.5.1",
|
|
55
|
+
"std-env": "^4.0.0",
|
|
56
56
|
"time-fix-plugin": "^2.0.7",
|
|
57
57
|
"ufo": "^1.6.3",
|
|
58
58
|
"unenv": "^2.0.0-rc.24",
|
|
59
|
-
"unplugin": "^
|
|
59
|
+
"unplugin": "^3.0.0",
|
|
60
60
|
"url-loader": "^4.1.1",
|
|
61
61
|
"vue-bundle-renderer": "^2.2.0",
|
|
62
62
|
"vue-loader": "^17.4.2",
|
|
63
|
-
"webpack": "^5.
|
|
64
|
-
"webpack-bundle-analyzer": "^5.
|
|
63
|
+
"webpack": "^5.105.4",
|
|
64
|
+
"webpack-bundle-analyzer": "^5.2.0",
|
|
65
65
|
"webpack-dev-middleware": "^7.4.5",
|
|
66
66
|
"webpack-hot-middleware": "^2.26.1",
|
|
67
67
|
"webpackbar": "^7.0.0",
|
|
68
|
-
"@nuxt/kit": "3.21.
|
|
68
|
+
"@nuxt/kit": "3.21.2"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@rspack/core": "1.7.
|
|
71
|
+
"@rspack/core": "1.7.8",
|
|
72
72
|
"@types/pify": "6.1.0",
|
|
73
73
|
"@types/webpack-bundle-analyzer": "4.7.0",
|
|
74
74
|
"@types/webpack-hot-middleware": "2.25.12",
|
|
75
|
-
"h3": "1.15.
|
|
76
|
-
"h3-next": "npm:h3@2.0.1-rc.
|
|
77
|
-
"obuild": "0.4.
|
|
78
|
-
"rollup": "4.
|
|
79
|
-
"vue": "3.5.
|
|
80
|
-
"@nuxt/schema": "3.21.
|
|
75
|
+
"h3": "1.15.6",
|
|
76
|
+
"h3-next": "npm:h3@2.0.1-rc.16",
|
|
77
|
+
"obuild": "0.4.32",
|
|
78
|
+
"rollup": "4.59.0",
|
|
79
|
+
"vue": "3.5.30",
|
|
80
|
+
"@nuxt/schema": "3.21.2"
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|
|
83
83
|
"vue": "^3.3.4",
|
|
84
|
-
"nuxt": "3.21.
|
|
84
|
+
"nuxt": "3.21.2"
|
|
85
85
|
},
|
|
86
86
|
"engines": {
|
|
87
|
-
"node": "^20.
|
|
87
|
+
"node": "^20.19.0 || >=22.12.0"
|
|
88
88
|
},
|
|
89
89
|
"scripts": {
|
|
90
90
|
"build:stub": "obuild --stub",
|