This commit is contained in:
TiclemFR
2024-01-20 23:14:52 +01:00
parent a068f54957
commit 031f7071e6
881 changed files with 241469 additions and 247870 deletions

View File

@@ -19,7 +19,7 @@ const path__default = /*#__PURE__*/_interopDefaultCompat(path);
const require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);
const require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1);
const version = "5.0.0";
const version = "5.0.3";
function resolveCompiler(root) {
const compiler = tryResolveCompiler(root) || tryResolveCompiler();
@@ -82,10 +82,11 @@ function slash(path) {
const cache = /* @__PURE__ */ new Map();
const hmrCache = /* @__PURE__ */ new Map();
const prevCache = /* @__PURE__ */ new Map();
function createDescriptor(filename, source, { root, isProduction, sourceMap, compiler }, hmr = false) {
function createDescriptor(filename, source, { root, isProduction, sourceMap, compiler, template }, hmr = false) {
const { descriptor, errors } = compiler.parse(source, {
filename,
sourceMap
sourceMap,
templateParseOptions: template?.compilerOptions
});
const normalizedPath = slash(path__default.normalize(path__default.relative(root, filename)));
descriptor.id = getHash(normalizedPath + (isProduction ? source : ""));
@@ -283,8 +284,7 @@ function resolveTemplateCompilerOptions(descriptor, options, ssr) {
return {
...options.template,
id,
// @ts-ignore TODO remove ignore when dep is updated to 3.4
ast: descriptor.template?.ast,
ast: canReuseAST(options.compiler.version) ? descriptor.template?.ast : void 0,
filename,
scoped: hasScoped,
slotted: descriptor.slotted,
@@ -304,6 +304,15 @@ function resolveTemplateCompilerOptions(descriptor, options, ssr) {
}
};
}
function canReuseAST(version) {
if (version) {
const [_, minor, patch] = version.split(".").map(Number);
if (minor >= 4 && patch >= 3) {
return true;
}
}
return false;
}
const clientCache = /* @__PURE__ */ new WeakMap();
const ssrCache = /* @__PURE__ */ new WeakMap();
@@ -2145,7 +2154,7 @@ const _debug = /*@__PURE__*/getDefaultExportFromCjs(srcExports);
const debug = _debug("vite:hmr");
const directRequestRE = /(?:\?|&)direct\b/;
async function handleHotUpdate({ file, modules, read }, options) {
async function handleHotUpdate({ file, modules, read }, options, customElement) {
const prevDescriptor = getDescriptor(file, options, false, true);
if (!prevDescriptor) {
return;
@@ -2156,7 +2165,7 @@ async function handleHotUpdate({ file, modules, read }, options) {
const affectedModules = /* @__PURE__ */ new Set();
const mainModule = getMainModule(modules);
const templateModule = modules.find((m) => /type=template/.test(m.url));
resolveScript(descriptor, options, false);
resolveScript(descriptor, options, false, customElement);
const scriptChanged = hasScriptChanged(prevDescriptor, descriptor);
if (scriptChanged) {
affectedModules.add(getScriptModule(modules) || mainModule);
@@ -2267,11 +2276,11 @@ function isEqualBlock(a, b) {
function isOnlyTemplateChanged(prev, next) {
return !hasScriptChanged(prev, next) && prev.styles.length === next.styles.length && prev.styles.every((s, i) => isEqualBlock(s, next.styles[i])) && prev.customBlocks.length === next.customBlocks.length && prev.customBlocks.every((s, i) => isEqualBlock(s, next.customBlocks[i]));
}
function deepEqual(obj1, obj2, excludeProps = []) {
function deepEqual(obj1, obj2, excludeProps = [], deepParentsOfObj1 = []) {
if (typeof obj1 !== typeof obj2) {
return false;
}
if (obj1 == null || obj2 == null || typeof obj1 !== "object") {
if (obj1 == null || obj2 == null || typeof obj1 !== "object" || deepParentsOfObj1.includes(obj1)) {
return obj1 === obj2;
}
const keys1 = Object.keys(obj1);
@@ -2283,7 +2292,10 @@ function deepEqual(obj1, obj2, excludeProps = []) {
if (excludeProps.includes(key)) {
continue;
}
if (!deepEqual(obj1[key], obj2[key], excludeProps)) {
if (!deepEqual(obj1[key], obj2[key], excludeProps, [
...deepParentsOfObj1,
obj1
])) {
return false;
}
}
@@ -2816,7 +2828,11 @@ function vuePlugin(rawOptions = {}) {
return handleTypeDepChange(typeDepToSFCMap.get(ctx.file), ctx);
}
if (filter.value(ctx.file)) {
return handleHotUpdate(ctx, options.value);
return handleHotUpdate(
ctx,
options.value,
customElementFilter.value(ctx.file)
);
}
},
config(config) {

View File

@@ -7,7 +7,7 @@ import { createHash } from 'node:crypto';
import require$$0 from 'tty';
import require$$1 from 'util';
const version = "5.0.0";
const version = "5.0.3";
function resolveCompiler(root) {
const compiler = tryResolveCompiler(root) || tryResolveCompiler();
@@ -70,10 +70,11 @@ function slash(path) {
const cache = /* @__PURE__ */ new Map();
const hmrCache = /* @__PURE__ */ new Map();
const prevCache = /* @__PURE__ */ new Map();
function createDescriptor(filename, source, { root, isProduction, sourceMap, compiler }, hmr = false) {
function createDescriptor(filename, source, { root, isProduction, sourceMap, compiler, template }, hmr = false) {
const { descriptor, errors } = compiler.parse(source, {
filename,
sourceMap
sourceMap,
templateParseOptions: template?.compilerOptions
});
const normalizedPath = slash(path.normalize(path.relative(root, filename)));
descriptor.id = getHash(normalizedPath + (isProduction ? source : ""));
@@ -271,8 +272,7 @@ function resolveTemplateCompilerOptions(descriptor, options, ssr) {
return {
...options.template,
id,
// @ts-ignore TODO remove ignore when dep is updated to 3.4
ast: descriptor.template?.ast,
ast: canReuseAST(options.compiler.version) ? descriptor.template?.ast : void 0,
filename,
scoped: hasScoped,
slotted: descriptor.slotted,
@@ -292,6 +292,15 @@ function resolveTemplateCompilerOptions(descriptor, options, ssr) {
}
};
}
function canReuseAST(version) {
if (version) {
const [_, minor, patch] = version.split(".").map(Number);
if (minor >= 4 && patch >= 3) {
return true;
}
}
return false;
}
const clientCache = /* @__PURE__ */ new WeakMap();
const ssrCache = /* @__PURE__ */ new WeakMap();
@@ -2133,7 +2142,7 @@ const _debug = /*@__PURE__*/getDefaultExportFromCjs(srcExports);
const debug = _debug("vite:hmr");
const directRequestRE = /(?:\?|&)direct\b/;
async function handleHotUpdate({ file, modules, read }, options) {
async function handleHotUpdate({ file, modules, read }, options, customElement) {
const prevDescriptor = getDescriptor(file, options, false, true);
if (!prevDescriptor) {
return;
@@ -2144,7 +2153,7 @@ async function handleHotUpdate({ file, modules, read }, options) {
const affectedModules = /* @__PURE__ */ new Set();
const mainModule = getMainModule(modules);
const templateModule = modules.find((m) => /type=template/.test(m.url));
resolveScript(descriptor, options, false);
resolveScript(descriptor, options, false, customElement);
const scriptChanged = hasScriptChanged(prevDescriptor, descriptor);
if (scriptChanged) {
affectedModules.add(getScriptModule(modules) || mainModule);
@@ -2255,11 +2264,11 @@ function isEqualBlock(a, b) {
function isOnlyTemplateChanged(prev, next) {
return !hasScriptChanged(prev, next) && prev.styles.length === next.styles.length && prev.styles.every((s, i) => isEqualBlock(s, next.styles[i])) && prev.customBlocks.length === next.customBlocks.length && prev.customBlocks.every((s, i) => isEqualBlock(s, next.customBlocks[i]));
}
function deepEqual(obj1, obj2, excludeProps = []) {
function deepEqual(obj1, obj2, excludeProps = [], deepParentsOfObj1 = []) {
if (typeof obj1 !== typeof obj2) {
return false;
}
if (obj1 == null || obj2 == null || typeof obj1 !== "object") {
if (obj1 == null || obj2 == null || typeof obj1 !== "object" || deepParentsOfObj1.includes(obj1)) {
return obj1 === obj2;
}
const keys1 = Object.keys(obj1);
@@ -2271,7 +2280,10 @@ function deepEqual(obj1, obj2, excludeProps = []) {
if (excludeProps.includes(key)) {
continue;
}
if (!deepEqual(obj1[key], obj2[key], excludeProps)) {
if (!deepEqual(obj1[key], obj2[key], excludeProps, [
...deepParentsOfObj1,
obj1
])) {
return false;
}
}
@@ -2804,7 +2816,11 @@ function vuePlugin(rawOptions = {}) {
return handleTypeDepChange(typeDepToSFCMap.get(ctx.file), ctx);
}
if (filter.value(ctx.file)) {
return handleHotUpdate(ctx, options.value);
return handleHotUpdate(
ctx,
options.value,
customElementFilter.value(ctx.file)
);
}
},
config(config) {

View File

@@ -1,6 +1,6 @@
{
"name": "@vitejs/plugin-vue",
"version": "5.0.0",
"version": "5.0.3",
"license": "MIT",
"author": "Evan You",
"files": [
@@ -35,11 +35,11 @@
"@jridgewell/gen-mapping": "^0.3.3",
"@jridgewell/trace-mapping": "^0.3.20",
"debug": "^4.3.4",
"rollup": "^4.6.1",
"rollup": "^4.9.2",
"slash": "^5.1.0",
"source-map-js": "^1.0.2",
"vite": "^5.0.6",
"vue": "^3.3.10"
"vite": "^5.0.10",
"vue": "^3.4.5"
},
"scripts": {
"dev": "unbuild --stub",