@sveltejs/vite-plugin-svelte 1.0.0-next.34 → 1.0.0-next.35
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.cjs +43 -29
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +42 -28
- package/dist/index.js.map +1 -1
- package/package.json +6 -7
- package/src/index.ts +7 -14
- package/src/utils/dependencies.ts +5 -2
- package/src/utils/resolve.ts +24 -9
- package/src/utils/vite-plugin-svelte-cache.ts +20 -0
package/dist/index.cjs
CHANGED
|
@@ -49,12 +49,12 @@ __export(src_exports, {
|
|
|
49
49
|
svelte: () => svelte
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
// ../../node_modules/.pnpm/tsup@5.11.
|
|
52
|
+
// ../../node_modules/.pnpm/tsup@5.11.11_typescript@4.5.4/node_modules/tsup/assets/cjs_shims.js
|
|
53
53
|
var getImportMetaUrl = () => typeof document === "undefined" ? new URL("file:" + __filename).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
|
|
54
54
|
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
55
55
|
|
|
56
56
|
// src/index.ts
|
|
57
|
-
var
|
|
57
|
+
var import_fs6 = __toESM(require("fs"), 1);
|
|
58
58
|
|
|
59
59
|
// src/utils/log.ts
|
|
60
60
|
var import_colors = require("kleur/colors");
|
|
@@ -1261,6 +1261,7 @@ var VitePluginSvelteCache = class {
|
|
|
1261
1261
|
this._js = /* @__PURE__ */ new Map();
|
|
1262
1262
|
this._dependencies = /* @__PURE__ */ new Map();
|
|
1263
1263
|
this._dependants = /* @__PURE__ */ new Map();
|
|
1264
|
+
this._resolvedSvelteFields = /* @__PURE__ */ new Map();
|
|
1264
1265
|
}
|
|
1265
1266
|
update(compileData) {
|
|
1266
1267
|
this.updateCSS(compileData);
|
|
@@ -1326,6 +1327,15 @@ var VitePluginSvelteCache = class {
|
|
|
1326
1327
|
const dependants = this._dependants.get(path7);
|
|
1327
1328
|
return dependants ? [...dependants] : [];
|
|
1328
1329
|
}
|
|
1330
|
+
getResolvedSvelteField(name, importer) {
|
|
1331
|
+
return this._resolvedSvelteFields.get(this._getResolvedSvelteFieldKey(name, importer));
|
|
1332
|
+
}
|
|
1333
|
+
setResolvedSvelteField(importee, importer = void 0, resolvedSvelte) {
|
|
1334
|
+
this._resolvedSvelteFields.set(this._getResolvedSvelteFieldKey(importee, importer), resolvedSvelte);
|
|
1335
|
+
}
|
|
1336
|
+
_getResolvedSvelteFieldKey(importee, importer) {
|
|
1337
|
+
return importer ? `${importer} > ${importee}` : importee;
|
|
1338
|
+
}
|
|
1329
1339
|
};
|
|
1330
1340
|
|
|
1331
1341
|
// src/utils/watch.ts
|
|
@@ -1405,14 +1415,24 @@ function ensureWatchedFile(watcher, file, root) {
|
|
|
1405
1415
|
|
|
1406
1416
|
// src/utils/resolve.ts
|
|
1407
1417
|
var import_path5 = __toESM(require("path"), 1);
|
|
1408
|
-
var
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1418
|
+
var import_module4 = require("module");
|
|
1419
|
+
function resolveViaPackageJsonSvelte(importee, importer, cache) {
|
|
1420
|
+
if (importer && isBareImport(importee) && !is_common_without_svelte_field(importee)) {
|
|
1421
|
+
const cached = cache.getResolvedSvelteField(importee, importer);
|
|
1422
|
+
if (cached) {
|
|
1423
|
+
return cached;
|
|
1424
|
+
}
|
|
1425
|
+
const localRequire = (0, import_module4.createRequire)(importer);
|
|
1426
|
+
const pkgData = resolveDependencyData(importee, localRequire);
|
|
1427
|
+
if (pkgData) {
|
|
1428
|
+
const { pkg, dir } = pkgData;
|
|
1429
|
+
if (pkg.svelte) {
|
|
1430
|
+
const result = import_path5.default.resolve(dir, pkg.svelte);
|
|
1431
|
+
cache.setResolvedSvelteField(importee, importer, result);
|
|
1432
|
+
return result;
|
|
1433
|
+
}
|
|
1434
|
+
} else {
|
|
1435
|
+
throw new Error(`failed to resolve package.json of ${importee} imported by ${importer}`);
|
|
1416
1436
|
}
|
|
1417
1437
|
}
|
|
1418
1438
|
}
|
|
@@ -1432,7 +1452,7 @@ function isBareImport(importee) {
|
|
|
1432
1452
|
}
|
|
1433
1453
|
|
|
1434
1454
|
// src/utils/optimizer.ts
|
|
1435
|
-
var
|
|
1455
|
+
var import_fs5 = __toESM(require("fs"), 1);
|
|
1436
1456
|
var import_path6 = __toESM(require("path"), 1);
|
|
1437
1457
|
var import_vite4 = require("vite");
|
|
1438
1458
|
var PREBUNDLE_SENSITIVE_OPTIONS = [
|
|
@@ -1447,19 +1467,19 @@ async function handleOptimizeDeps(options, viteConfig) {
|
|
|
1447
1467
|
if (!options.experimental.prebundleSvelteLibraries || !viteConfig.cacheDir)
|
|
1448
1468
|
return;
|
|
1449
1469
|
const viteMetadataPath = import_path6.default.resolve(viteConfig.cacheDir, "_metadata.json");
|
|
1450
|
-
if (!
|
|
1470
|
+
if (!import_fs5.default.existsSync(viteMetadataPath))
|
|
1451
1471
|
return;
|
|
1452
1472
|
const svelteMetadataPath = import_path6.default.resolve(viteConfig.cacheDir, "_svelte_metadata.json");
|
|
1453
1473
|
const currentSvelteMetadata = JSON.stringify(generateSvelteMetadata(options), (_, value) => {
|
|
1454
1474
|
return typeof value === "function" ? value.toString() : value;
|
|
1455
1475
|
});
|
|
1456
|
-
if (
|
|
1457
|
-
const existingSvelteMetadata =
|
|
1476
|
+
if (import_fs5.default.existsSync(svelteMetadataPath)) {
|
|
1477
|
+
const existingSvelteMetadata = import_fs5.default.readFileSync(svelteMetadataPath, "utf8");
|
|
1458
1478
|
if (existingSvelteMetadata === currentSvelteMetadata)
|
|
1459
1479
|
return;
|
|
1460
1480
|
}
|
|
1461
1481
|
await (0, import_vite4.optimizeDeps)(viteConfig, true);
|
|
1462
|
-
|
|
1482
|
+
import_fs5.default.writeFileSync(svelteMetadataPath, currentSvelteMetadata);
|
|
1463
1483
|
}
|
|
1464
1484
|
function generateSvelteMetadata(options) {
|
|
1465
1485
|
const metadata = {};
|
|
@@ -1476,7 +1496,7 @@ function svelte(inlineOptions) {
|
|
|
1476
1496
|
}
|
|
1477
1497
|
validateInlineOptions(inlineOptions);
|
|
1478
1498
|
const cache = new VitePluginSvelteCache();
|
|
1479
|
-
const
|
|
1499
|
+
const pkg_resolve_errors = /* @__PURE__ */ new Set();
|
|
1480
1500
|
let requestParser;
|
|
1481
1501
|
let options;
|
|
1482
1502
|
let viteConfig;
|
|
@@ -1525,7 +1545,7 @@ function svelte(inlineOptions) {
|
|
|
1525
1545
|
}
|
|
1526
1546
|
if (viteConfig.assetsInclude(filename)) {
|
|
1527
1547
|
log.debug(`load returns raw content for ${filename}`);
|
|
1528
|
-
return
|
|
1548
|
+
return import_fs6.default.readFileSync(filename, "utf-8");
|
|
1529
1549
|
}
|
|
1530
1550
|
}
|
|
1531
1551
|
},
|
|
@@ -1553,21 +1573,13 @@ function svelte(inlineOptions) {
|
|
|
1553
1573
|
return resolvedSvelteSSR;
|
|
1554
1574
|
}
|
|
1555
1575
|
try {
|
|
1556
|
-
const resolved = resolveViaPackageJsonSvelte(importee, importer);
|
|
1576
|
+
const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
|
|
1557
1577
|
if (resolved) {
|
|
1558
1578
|
log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);
|
|
1559
1579
|
return resolved;
|
|
1560
1580
|
}
|
|
1561
1581
|
} catch (err) {
|
|
1562
|
-
|
|
1563
|
-
case "ERR_PACKAGE_PATH_NOT_EXPORTED":
|
|
1564
|
-
pkg_export_errors.add(importee);
|
|
1565
|
-
return null;
|
|
1566
|
-
case "MODULE_NOT_FOUND":
|
|
1567
|
-
return null;
|
|
1568
|
-
default:
|
|
1569
|
-
throw err;
|
|
1570
|
-
}
|
|
1582
|
+
pkg_resolve_errors.add(importee);
|
|
1571
1583
|
}
|
|
1572
1584
|
},
|
|
1573
1585
|
async transform(code, id, opts) {
|
|
@@ -1615,8 +1627,10 @@ function svelte(inlineOptions) {
|
|
|
1615
1627
|
}
|
|
1616
1628
|
},
|
|
1617
1629
|
buildEnd() {
|
|
1618
|
-
if (
|
|
1619
|
-
log.warn(`
|
|
1630
|
+
if (pkg_resolve_errors.size > 0) {
|
|
1631
|
+
log.warn(`vite-plugin-svelte was unable to find package.json of the following packages and wasn't able to resolve via their "svelte" field.
|
|
1632
|
+
If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.
|
|
1633
|
+
${Array.from(pkg_resolve_errors, (s) => `- ${s}`).join("\n")}`.replace(/\t/g, ""));
|
|
1620
1634
|
}
|
|
1621
1635
|
}
|
|
1622
1636
|
};
|