@nuxt/webpack-builder 4.3.0 → 4.4.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 +135 -149
- 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 { basename, 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) {
|
|
@@ -793,7 +788,6 @@ const statsMap = {
|
|
|
793
788
|
info: "normal",
|
|
794
789
|
verbose: "verbose"
|
|
795
790
|
};
|
|
796
|
-
|
|
797
791
|
//#endregion
|
|
798
792
|
//#region src/presets/esbuild.ts
|
|
799
793
|
function esbuild(ctx) {
|
|
@@ -823,7 +817,6 @@ function esbuild(ctx) {
|
|
|
823
817
|
}
|
|
824
818
|
});
|
|
825
819
|
}
|
|
826
|
-
|
|
827
820
|
//#endregion
|
|
828
821
|
//#region src/presets/pug.ts
|
|
829
822
|
function pug(ctx) {
|
|
@@ -841,7 +834,6 @@ function pug(ctx) {
|
|
|
841
834
|
}] }]
|
|
842
835
|
});
|
|
843
836
|
}
|
|
844
|
-
|
|
845
837
|
//#endregion
|
|
846
838
|
//#region src/utils/postcss.ts
|
|
847
839
|
const isPureObject = (obj) => obj !== null && !Array.isArray(obj) && typeof obj === "object";
|
|
@@ -849,27 +841,27 @@ function sortPlugins({ plugins, order }) {
|
|
|
849
841
|
const names = Object.keys(plugins);
|
|
850
842
|
return typeof order === "function" ? order(names) : order || names;
|
|
851
843
|
}
|
|
852
|
-
async function getPostcssConfig(nuxt
|
|
853
|
-
if (!nuxt
|
|
854
|
-
const postcssOptions = defu({}, nuxt
|
|
844
|
+
async function getPostcssConfig(nuxt) {
|
|
845
|
+
if (!nuxt.options.webpack.postcss || !nuxt.options.postcss) return false;
|
|
846
|
+
const postcssOptions = defu({}, nuxt.options.postcss, {
|
|
855
847
|
plugins: {
|
|
856
848
|
"postcss-import": { resolve: createResolver({
|
|
857
|
-
alias: { ...nuxt
|
|
858
|
-
modules: nuxt
|
|
849
|
+
alias: { ...nuxt.options.alias },
|
|
850
|
+
modules: nuxt.options.modulesDir
|
|
859
851
|
}) },
|
|
860
852
|
"postcss-url": {}
|
|
861
853
|
},
|
|
862
|
-
sourceMap: nuxt
|
|
854
|
+
sourceMap: nuxt.options.webpack.cssSourceMap
|
|
863
855
|
});
|
|
864
|
-
const jiti = createJiti(nuxt
|
|
856
|
+
const jiti = createJiti(nuxt.options.rootDir, { alias: nuxt.options.alias });
|
|
865
857
|
if (!Array.isArray(postcssOptions.plugins) && isPureObject(postcssOptions.plugins)) {
|
|
866
858
|
const plugins = [];
|
|
867
|
-
for (const pluginName
|
|
868
|
-
const pluginOptions = postcssOptions.plugins[pluginName
|
|
859
|
+
for (const pluginName of sortPlugins(postcssOptions)) {
|
|
860
|
+
const pluginOptions = postcssOptions.plugins[pluginName];
|
|
869
861
|
if (!pluginOptions) continue;
|
|
870
862
|
let pluginFn;
|
|
871
|
-
for (const parentURL of nuxt
|
|
872
|
-
pluginFn = await jiti.import(pluginName
|
|
863
|
+
for (const parentURL of nuxt.options.modulesDir) {
|
|
864
|
+
pluginFn = await jiti.import(pluginName, {
|
|
873
865
|
parentURL: parentURL.replace(/\/node_modules\/?$/, ""),
|
|
874
866
|
try: true,
|
|
875
867
|
default: true
|
|
@@ -879,17 +871,16 @@ async function getPostcssConfig(nuxt$1) {
|
|
|
879
871
|
break;
|
|
880
872
|
}
|
|
881
873
|
}
|
|
882
|
-
if (typeof pluginFn !== "function") console.warn(`[nuxt] could not import postcss plugin \`${pluginName
|
|
874
|
+
if (typeof pluginFn !== "function") console.warn(`[nuxt] could not import postcss plugin \`${pluginName}\`. Please report this as a bug.`);
|
|
883
875
|
}
|
|
884
876
|
postcssOptions.plugins = plugins;
|
|
885
877
|
}
|
|
886
878
|
return {
|
|
887
|
-
sourceMap: nuxt
|
|
888
|
-
...nuxt
|
|
879
|
+
sourceMap: nuxt.options.webpack.cssSourceMap,
|
|
880
|
+
...nuxt.options.webpack.postcss,
|
|
889
881
|
postcssOptions
|
|
890
882
|
};
|
|
891
883
|
}
|
|
892
|
-
|
|
893
884
|
//#endregion
|
|
894
885
|
//#region src/presets/style.ts
|
|
895
886
|
async function style(ctx) {
|
|
@@ -971,7 +962,6 @@ async function createPostcssLoadersRule(ctx) {
|
|
|
971
962
|
options: config
|
|
972
963
|
};
|
|
973
964
|
}
|
|
974
|
-
|
|
975
965
|
//#endregion
|
|
976
966
|
//#region src/plugins/vue/client.ts
|
|
977
967
|
/**
|
|
@@ -995,9 +985,9 @@ var VueSSRClientPlugin = class {
|
|
|
995
985
|
const stats = compilation.getStats().toJson();
|
|
996
986
|
const context = this.nuxt.options.srcDir;
|
|
997
987
|
const initialFiles = /* @__PURE__ */ new Set();
|
|
998
|
-
for (const { assets
|
|
999
|
-
if (!assets
|
|
1000
|
-
for (const asset of assets
|
|
988
|
+
for (const { assets } of Object.values(stats.entrypoints)) {
|
|
989
|
+
if (!assets) continue;
|
|
990
|
+
for (const asset of assets) {
|
|
1001
991
|
const file = asset.name;
|
|
1002
992
|
if ((isJS(file) || isCSS(file)) && !isHotUpdate(file)) initialFiles.add(file);
|
|
1003
993
|
}
|
|
@@ -1043,11 +1033,11 @@ var VueSSRClientPlugin = class {
|
|
|
1043
1033
|
const files = Array.from(filesSet);
|
|
1044
1034
|
webpackManifest.modules[relativeId] = files;
|
|
1045
1035
|
if (Array.isArray(m.modules)) for (const concatenatedModule of m.modules) {
|
|
1046
|
-
const relativeId
|
|
1047
|
-
webpackManifest.modules[relativeId
|
|
1036
|
+
const relativeId = this.getRelativeModuleId(concatenatedModule.identifier, context);
|
|
1037
|
+
webpackManifest.modules[relativeId] ||= files;
|
|
1048
1038
|
}
|
|
1049
1039
|
if (stats.modules) {
|
|
1050
|
-
for (const m
|
|
1040
|
+
for (const m of stats.modules) if (m.assets?.length && m.chunks?.includes(cid)) files.push(...m.assets.map(fileToIndex));
|
|
1051
1041
|
}
|
|
1052
1042
|
}
|
|
1053
1043
|
const manifest = normalizeWebpackManifest(webpackManifest);
|
|
@@ -1060,7 +1050,6 @@ var VueSSRClientPlugin = class {
|
|
|
1060
1050
|
});
|
|
1061
1051
|
}
|
|
1062
1052
|
};
|
|
1063
|
-
|
|
1064
1053
|
//#endregion
|
|
1065
1054
|
//#region src/plugins/vue/server.ts
|
|
1066
1055
|
const JS_MAP_RE = /\.js\.map$/;
|
|
@@ -1075,7 +1064,7 @@ var VueSSRServerPlugin = class {
|
|
|
1075
1064
|
compilation.hooks.processAssets.tapAsync({
|
|
1076
1065
|
name: "VueSSRServerPlugin",
|
|
1077
1066
|
stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL
|
|
1078
|
-
}, (assets
|
|
1067
|
+
}, (assets, cb) => {
|
|
1079
1068
|
const stats = compilation.getStats().toJson();
|
|
1080
1069
|
const [entryName] = Object.keys(stats.entrypoints);
|
|
1081
1070
|
const entryInfo = stats.entrypoints[entryName];
|
|
@@ -1084,24 +1073,24 @@ var VueSSRServerPlugin = class {
|
|
|
1084
1073
|
if (entryAssets.length > 1) throw new Error("Server-side bundle should have one single entry file. Avoid using CommonsChunkPlugin in the server config.");
|
|
1085
1074
|
const [entry] = entryAssets;
|
|
1086
1075
|
if (!entry || typeof entry.name !== "string") throw new Error(`Entry "${entryName}" not found. Did you specify the correct entry option?`);
|
|
1087
|
-
const bundle
|
|
1076
|
+
const bundle = {
|
|
1088
1077
|
entry: entry.name,
|
|
1089
1078
|
files: {},
|
|
1090
1079
|
maps: {}
|
|
1091
1080
|
};
|
|
1092
1081
|
for (const asset of stats.assets) if (isJS(asset.name)) {
|
|
1093
1082
|
const queryPart = extractQueryPartJS(asset.name);
|
|
1094
|
-
if (queryPart !== void 0) bundle
|
|
1095
|
-
else bundle
|
|
1096
|
-
} else if (JS_MAP_RE.test(asset.name)) bundle
|
|
1097
|
-
else delete assets
|
|
1098
|
-
const src = JSON.stringify(bundle
|
|
1099
|
-
assets
|
|
1083
|
+
if (queryPart !== void 0) bundle.files[asset.name] = asset.name.replace(queryPart, "");
|
|
1084
|
+
else bundle.files[asset.name] = asset.name;
|
|
1085
|
+
} else if (JS_MAP_RE.test(asset.name)) bundle.maps[asset.name.replace(/\.map$/, "")] = asset.name;
|
|
1086
|
+
else delete assets[asset.name];
|
|
1087
|
+
const src = JSON.stringify(bundle, null, 2);
|
|
1088
|
+
assets[this.options.filename] = {
|
|
1100
1089
|
source: () => src,
|
|
1101
1090
|
size: () => src.length
|
|
1102
1091
|
};
|
|
1103
1092
|
const mjsSrc = "export default " + src;
|
|
1104
|
-
assets
|
|
1093
|
+
assets[this.options.filename.replace(".json", ".mjs")] = {
|
|
1105
1094
|
source: () => mjsSrc,
|
|
1106
1095
|
map: () => null,
|
|
1107
1096
|
size: () => mjsSrc.length
|
|
@@ -1111,11 +1100,14 @@ var VueSSRServerPlugin = class {
|
|
|
1111
1100
|
});
|
|
1112
1101
|
}
|
|
1113
1102
|
};
|
|
1114
|
-
|
|
1115
1103
|
//#endregion
|
|
1116
1104
|
//#region src/presets/vue.ts
|
|
1117
1105
|
function vue(ctx) {
|
|
1118
|
-
ctx.
|
|
1106
|
+
ctx.nuxt.hooks.hookOnce(`${builder}:config`, () => {
|
|
1107
|
+
ctx.nuxt.hook(`${builder}:configResolved`, (configs) => {
|
|
1108
|
+
for (const config of configs) config.plugins.unshift(new (VueLoaderPlugin.default || VueLoaderPlugin)());
|
|
1109
|
+
});
|
|
1110
|
+
});
|
|
1119
1111
|
ctx.config.module.rules.push({
|
|
1120
1112
|
test: /\.vue$/i,
|
|
1121
1113
|
loader: "vue-loader",
|
|
@@ -1143,7 +1135,6 @@ function vue(ctx) {
|
|
|
1143
1135
|
"__VUE_PROD_HYDRATION_MISMATCH_DETAILS__": ctx.nuxt.options.debug && ctx.nuxt.options.debug.hydration
|
|
1144
1136
|
}));
|
|
1145
1137
|
}
|
|
1146
|
-
|
|
1147
1138
|
//#endregion
|
|
1148
1139
|
//#region src/presets/nuxt.ts
|
|
1149
1140
|
async function nuxt(ctx) {
|
|
@@ -1156,7 +1147,6 @@ async function nuxt(ctx) {
|
|
|
1156
1147
|
vue
|
|
1157
1148
|
]);
|
|
1158
1149
|
}
|
|
1159
|
-
|
|
1160
1150
|
//#endregion
|
|
1161
1151
|
//#region src/configs/client.ts
|
|
1162
1152
|
async function client(ctx) {
|
|
@@ -1264,7 +1254,6 @@ function clientPlugins(ctx) {
|
|
|
1264
1254
|
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 }));
|
|
1265
1255
|
}
|
|
1266
1256
|
}
|
|
1267
|
-
|
|
1268
1257
|
//#endregion
|
|
1269
1258
|
//#region src/presets/node.ts
|
|
1270
1259
|
function node(ctx) {
|
|
@@ -1295,7 +1284,6 @@ function node(ctx) {
|
|
|
1295
1284
|
maxAssetSize: Number.POSITIVE_INFINITY
|
|
1296
1285
|
};
|
|
1297
1286
|
}
|
|
1298
|
-
|
|
1299
1287
|
//#endregion
|
|
1300
1288
|
//#region src/configs/server.ts
|
|
1301
1289
|
const assetPattern = /\.(?:css|s[ca]ss|png|jpe?g|gif|svg|woff2?|eot|ttf|otf|webp|webm|mp4|ogv)(?:\?.*)?$/i;
|
|
@@ -1390,117 +1378,116 @@ function serverPlugins(ctx) {
|
|
|
1390
1378
|
}));
|
|
1391
1379
|
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 }));
|
|
1392
1380
|
}
|
|
1393
|
-
|
|
1394
1381
|
//#endregion
|
|
1395
1382
|
//#region src/webpack.ts
|
|
1396
|
-
const bundle = async (nuxt
|
|
1397
|
-
const webpackConfigs = await Promise.all([client, ...nuxt
|
|
1398
|
-
const ctx = createWebpackConfigContext(nuxt
|
|
1399
|
-
ctx.userConfig = defu(nuxt
|
|
1383
|
+
const bundle = async (nuxt) => {
|
|
1384
|
+
const webpackConfigs = await Promise.all([client, ...nuxt.options.ssr ? [server] : []].map(async (preset) => {
|
|
1385
|
+
const ctx = createWebpackConfigContext(nuxt);
|
|
1386
|
+
ctx.userConfig = defu(nuxt.options.webpack[`$${preset.name}`], ctx.userConfig);
|
|
1400
1387
|
await applyPresets(ctx, preset);
|
|
1401
1388
|
return ctx.config;
|
|
1402
1389
|
}));
|
|
1403
1390
|
/** Remove Nitro rollup plugin for handling dynamic imports from webpack chunks */
|
|
1404
|
-
if (!nuxt
|
|
1391
|
+
if (!nuxt.options.dev) useNitro().hooks.hook("rollup:before", (_nitro, config) => {
|
|
1405
1392
|
const plugins = config.plugins;
|
|
1406
1393
|
const existingPlugin = plugins.findIndex((i) => i && "name" in i && i.name === "dynamic-require");
|
|
1407
1394
|
if (existingPlugin >= 0) plugins.splice(existingPlugin, 1);
|
|
1408
1395
|
});
|
|
1409
|
-
await nuxt
|
|
1410
|
-
const mfs = nuxt
|
|
1411
|
-
const ssrStylesPlugin = nuxt
|
|
1396
|
+
await nuxt.callHook(`${builder}:config`, webpackConfigs);
|
|
1397
|
+
const mfs = nuxt.options.dev ? createMFS() : null;
|
|
1398
|
+
const ssrStylesPlugin = nuxt.options.ssr && !nuxt.options.dev && nuxt.options.features.inlineStyles ? new SSRStylesPlugin(nuxt) : null;
|
|
1412
1399
|
for (const config of webpackConfigs) {
|
|
1413
|
-
config.plugins.push(DynamicBasePlugin.webpack({ sourcemap: !!nuxt
|
|
1414
|
-
if (config.name === "client" && nuxt
|
|
1400
|
+
config.plugins.push(DynamicBasePlugin.webpack({ sourcemap: !!nuxt.options.sourcemap[config.name] }));
|
|
1401
|
+
if (config.name === "client" && nuxt.options.experimental.emitRouteChunkError && nuxt.options.builder !== "@nuxt/rspack-builder") config.plugins.push(new ChunkErrorPlugin());
|
|
1415
1402
|
if (ssrStylesPlugin) config.plugins.push(ssrStylesPlugin);
|
|
1416
1403
|
}
|
|
1417
|
-
await nuxt
|
|
1404
|
+
await nuxt.callHook(`${builder}:configResolved`, webpackConfigs);
|
|
1418
1405
|
const compilers = webpackConfigs.map((config) => {
|
|
1419
1406
|
const compiler = webpack(config);
|
|
1420
|
-
if (nuxt
|
|
1407
|
+
if (nuxt.options.dev && compiler) compiler.outputFileSystem = mfs;
|
|
1421
1408
|
return compiler;
|
|
1422
1409
|
});
|
|
1423
|
-
nuxt
|
|
1424
|
-
for (const compiler of compilers) await new Promise((resolve
|
|
1410
|
+
nuxt.hook("close", async () => {
|
|
1411
|
+
for (const compiler of compilers) await new Promise((resolve) => compiler.close(resolve));
|
|
1425
1412
|
});
|
|
1426
|
-
if (nuxt
|
|
1413
|
+
if (nuxt.options.dev) {
|
|
1427
1414
|
await Promise.all(compilers.map((c) => compile(c)));
|
|
1428
1415
|
return;
|
|
1429
1416
|
}
|
|
1430
1417
|
for (const c of compilers) await compile(c);
|
|
1431
1418
|
};
|
|
1432
1419
|
async function createDevMiddleware(compiler) {
|
|
1433
|
-
const nuxt
|
|
1420
|
+
const nuxt = useNuxt();
|
|
1434
1421
|
logger.debug("Creating webpack middleware...");
|
|
1435
1422
|
const devMiddleware = webpackDevMiddleware(compiler, {
|
|
1436
|
-
publicPath: joinURL(nuxt
|
|
1423
|
+
publicPath: joinURL(nuxt.options.app.baseURL, nuxt.options.app.buildAssetsDir),
|
|
1437
1424
|
outputFileSystem: compiler.outputFileSystem,
|
|
1438
1425
|
stats: "none",
|
|
1439
|
-
...nuxt
|
|
1426
|
+
...nuxt.options.webpack.devMiddleware
|
|
1440
1427
|
});
|
|
1441
|
-
nuxt
|
|
1442
|
-
const { client: _client, ...hotMiddlewareOptions } = nuxt
|
|
1428
|
+
nuxt.hook("close", () => pify(devMiddleware.close.bind(devMiddleware))());
|
|
1429
|
+
const { client: _client, ...hotMiddlewareOptions } = nuxt.options.webpack.hotMiddleware || {};
|
|
1443
1430
|
const hotMiddleware = webpackHotMiddleware(compiler, {
|
|
1444
1431
|
log: false,
|
|
1445
1432
|
heartbeat: 1e4,
|
|
1446
|
-
path: joinURL(nuxt
|
|
1433
|
+
path: joinURL(nuxt.options.app.baseURL, "__webpack_hmr", compiler.options.name),
|
|
1447
1434
|
...hotMiddlewareOptions
|
|
1448
1435
|
});
|
|
1449
1436
|
const devHandler = wdmToH3Handler(devMiddleware);
|
|
1450
|
-
await nuxt
|
|
1437
|
+
await nuxt.callHook("server:devHandler", defineEventHandler(async (event) => {
|
|
1451
1438
|
const body = await devHandler(event);
|
|
1452
1439
|
if (body !== void 0) return body;
|
|
1453
1440
|
const { req, res } = "runtime" in event ? event.runtime.node : event.node;
|
|
1454
|
-
await new Promise((resolve
|
|
1441
|
+
await new Promise((resolve, reject) => hotMiddleware(req, res, (err) => err ? reject(err) : resolve()));
|
|
1455
1442
|
}), { cors: () => true });
|
|
1456
1443
|
return devMiddleware;
|
|
1457
1444
|
}
|
|
1458
1445
|
function wdmToH3Handler(devMiddleware) {
|
|
1459
1446
|
return defineEventHandler(async (event) => {
|
|
1460
1447
|
const { req, res } = "runtime" in event ? event.runtime.node : event.node;
|
|
1461
|
-
if (req.headers["sec-fetch-mode"] === "no-cors" && req.headers["sec-fetch-site"] === "cross-site")
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
}
|
|
1466
|
-
return await new Promise((resolve
|
|
1448
|
+
if (req.headers["sec-fetch-mode"] === "no-cors" && req.headers["sec-fetch-site"] === "cross-site") {
|
|
1449
|
+
res.statusCode = 403;
|
|
1450
|
+
res.end("Forbidden");
|
|
1451
|
+
return;
|
|
1452
|
+
}
|
|
1453
|
+
return await new Promise((resolve, reject) => {
|
|
1467
1454
|
res.stream = (stream) => {
|
|
1468
|
-
resolve
|
|
1455
|
+
resolve(stream);
|
|
1469
1456
|
};
|
|
1470
1457
|
res.send = (data) => {
|
|
1471
|
-
resolve
|
|
1458
|
+
resolve(data);
|
|
1472
1459
|
};
|
|
1473
1460
|
res.finish = (data) => {
|
|
1474
|
-
resolve
|
|
1461
|
+
resolve(data);
|
|
1475
1462
|
};
|
|
1476
1463
|
devMiddleware(req, res, (err) => {
|
|
1477
1464
|
if (err) reject(err);
|
|
1478
|
-
else resolve
|
|
1465
|
+
else resolve(void 0);
|
|
1479
1466
|
});
|
|
1480
1467
|
});
|
|
1481
1468
|
});
|
|
1482
1469
|
}
|
|
1483
1470
|
async function compile(compiler) {
|
|
1484
|
-
const nuxt
|
|
1485
|
-
await nuxt
|
|
1471
|
+
const nuxt = useNuxt();
|
|
1472
|
+
await nuxt.callHook(`${builder}:compile`, {
|
|
1486
1473
|
name: compiler.options.name,
|
|
1487
1474
|
compiler
|
|
1488
1475
|
});
|
|
1489
|
-
compiler.hooks.done.tap("load-resources", async (stats
|
|
1490
|
-
await nuxt
|
|
1476
|
+
compiler.hooks.done.tap("load-resources", async (stats) => {
|
|
1477
|
+
await nuxt.callHook(`${builder}:compiled`, {
|
|
1491
1478
|
name: compiler.options.name,
|
|
1492
1479
|
compiler,
|
|
1493
|
-
stats
|
|
1480
|
+
stats
|
|
1494
1481
|
});
|
|
1495
1482
|
});
|
|
1496
|
-
if (nuxt
|
|
1483
|
+
if (nuxt.options.dev) {
|
|
1497
1484
|
const compilersWatching = [];
|
|
1498
|
-
nuxt
|
|
1485
|
+
nuxt.hook("close", async () => {
|
|
1499
1486
|
await Promise.all(compilersWatching.map((watching) => watching && pify(watching.close.bind(watching))()));
|
|
1500
1487
|
});
|
|
1501
|
-
if (compiler.options.name === "client") return new Promise((resolve
|
|
1488
|
+
if (compiler.options.name === "client") return new Promise((resolve, reject) => {
|
|
1502
1489
|
compiler.hooks.done.tap("nuxt-dev", () => {
|
|
1503
|
-
resolve
|
|
1490
|
+
resolve(null);
|
|
1504
1491
|
});
|
|
1505
1492
|
compiler.hooks.failed.tap("nuxt-errorlog", (err) => {
|
|
1506
1493
|
reject(err);
|
|
@@ -1509,15 +1496,15 @@ async function compile(compiler) {
|
|
|
1509
1496
|
if (devMiddleware.context.watching) compilersWatching.push(devMiddleware.context.watching);
|
|
1510
1497
|
});
|
|
1511
1498
|
});
|
|
1512
|
-
return new Promise((resolve
|
|
1513
|
-
const watching = compiler.watch(nuxt
|
|
1499
|
+
return new Promise((resolve, reject) => {
|
|
1500
|
+
const watching = compiler.watch(nuxt.options.watchers.webpack, (err) => {
|
|
1514
1501
|
if (err) return reject(err);
|
|
1515
|
-
resolve
|
|
1502
|
+
resolve(null);
|
|
1516
1503
|
});
|
|
1517
1504
|
compilersWatching.push(watching);
|
|
1518
1505
|
});
|
|
1519
1506
|
}
|
|
1520
|
-
const stats = await new Promise((resolve
|
|
1507
|
+
const stats = await new Promise((resolve, reject) => compiler.run((err, stats) => err ? reject(err) : resolve(stats)));
|
|
1521
1508
|
if (stats.hasErrors()) {
|
|
1522
1509
|
const error = /* @__PURE__ */ new Error("Nuxt build error");
|
|
1523
1510
|
error.stack = stats.toString("errors-only");
|
|
@@ -1527,6 +1514,5 @@ async function compile(compiler) {
|
|
|
1527
1514
|
function defineEventHandler(handler) {
|
|
1528
1515
|
return Object.assign(handler, { __is_handler__: true });
|
|
1529
1516
|
}
|
|
1530
|
-
|
|
1531
1517
|
//#endregion
|
|
1532
|
-
export { bundle };
|
|
1518
|
+
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": "4.
|
|
3
|
+
"version": "4.4.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
|
"tinyglobby": "^0.2.15",
|
|
58
58
|
"ufo": "^1.6.3",
|
|
59
59
|
"unenv": "^2.0.0-rc.24",
|
|
60
|
-
"unplugin": "^
|
|
60
|
+
"unplugin": "^3.0.0",
|
|
61
61
|
"url-loader": "^4.1.1",
|
|
62
62
|
"vue-bundle-renderer": "^2.2.0",
|
|
63
63
|
"vue-loader": "^17.4.2",
|
|
64
|
-
"webpack": "^5.
|
|
65
|
-
"webpack-bundle-analyzer": "^5.
|
|
64
|
+
"webpack": "^5.105.4",
|
|
65
|
+
"webpack-bundle-analyzer": "^5.2.0",
|
|
66
66
|
"webpack-dev-middleware": "^7.4.5",
|
|
67
67
|
"webpack-hot-middleware": "^2.26.1",
|
|
68
68
|
"webpackbar": "^7.0.0",
|
|
69
|
-
"@nuxt/kit": "4.
|
|
69
|
+
"@nuxt/kit": "4.4.2"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@rspack/core": "1.7.
|
|
72
|
+
"@rspack/core": "1.7.8",
|
|
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": "4.
|
|
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": "4.4.2"
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|
|
83
83
|
"vue": "^3.3.4",
|
|
84
|
-
"nuxt": "4.
|
|
84
|
+
"nuxt": "4.4.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",
|