@cloudflare/vite-plugin 0.0.0-1d2d23683 → 0.0.0-2138fef92
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/asset-workers/asset-worker.js +21 -24
- package/dist/asset-workers/router-worker.js +229 -228
- package/dist/index.js +132 -98
- package/package.json +8 -7
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import assert9 from "node:assert";
|
|
3
3
|
import * as fs5 from "node:fs";
|
|
4
|
+
import { builtinModules as builtinModules2 } from "node:module";
|
|
4
5
|
import * as path7 from "node:path";
|
|
5
6
|
import { createMiddleware } from "@hattip/adapter-node";
|
|
6
7
|
|
|
@@ -1088,13 +1089,9 @@ var INIT_PATH = "/__vite_plugin_cloudflare_init__";
|
|
|
1088
1089
|
var MODULE_PATTERN = `__CLOUDFLARE_MODULE__(${MODULE_TYPES.join("|")})__(.*?)__`;
|
|
1089
1090
|
|
|
1090
1091
|
// src/utils.ts
|
|
1091
|
-
import { builtinModules } from "node:module";
|
|
1092
1092
|
import * as path from "node:path";
|
|
1093
1093
|
import { Request as MiniflareRequest } from "miniflare";
|
|
1094
1094
|
import "vite";
|
|
1095
|
-
var nodeBuiltInModules = new Set(
|
|
1096
|
-
builtinModules.concat(builtinModules.map((m) => `node:${m}`))
|
|
1097
|
-
);
|
|
1098
1095
|
function getOutputDirectory(userConfig, environmentName) {
|
|
1099
1096
|
const rootOutputDirectory = userConfig.build?.outDir ?? "dist";
|
|
1100
1097
|
return userConfig.environments?.[environmentName]?.build?.outDir ?? path.join(rootOutputDirectory, environmentName);
|
|
@@ -1212,9 +1209,7 @@ function createCloudflareEnvironmentOptions(workerConfig, userConfig, environmen
|
|
|
1212
1209
|
// We want to use `workerd` package exports if available (e.g. for postgres).
|
|
1213
1210
|
conditions: [...defaultConditions, "development|production"],
|
|
1214
1211
|
// The Cloudflare ones are proper builtins in the environment
|
|
1215
|
-
builtins: [...cloudflareBuiltInModules]
|
|
1216
|
-
// The Node.js ones are no proper builtins in the environment since we also polyfill them using unenv
|
|
1217
|
-
external: [...nodeBuiltInModules]
|
|
1212
|
+
builtins: [...cloudflareBuiltInModules]
|
|
1218
1213
|
},
|
|
1219
1214
|
dev: {
|
|
1220
1215
|
createEnvironment(name2, config) {
|
|
@@ -1243,10 +1238,7 @@ function createCloudflareEnvironmentOptions(workerConfig, userConfig, environmen
|
|
|
1243
1238
|
// Note: ssr pre-bundling is opt-in and we need to enable it by setting `noDiscovery` to false
|
|
1244
1239
|
noDiscovery: false,
|
|
1245
1240
|
entries: workerConfig.main,
|
|
1246
|
-
exclude: [
|
|
1247
|
-
// we have to exclude all node modules to work in dev-mode not just the unenv externals...
|
|
1248
|
-
...nodeBuiltInModules
|
|
1249
|
-
],
|
|
1241
|
+
exclude: [...cloudflareBuiltInModules],
|
|
1250
1242
|
esbuildOptions: {
|
|
1251
1243
|
platform: "neutral",
|
|
1252
1244
|
conditions: [...defaultConditions, "development"],
|
|
@@ -1372,7 +1364,13 @@ import * as fs2 from "node:fs";
|
|
|
1372
1364
|
import * as fsp from "node:fs/promises";
|
|
1373
1365
|
import * as path3 from "node:path";
|
|
1374
1366
|
import { fileURLToPath } from "node:url";
|
|
1375
|
-
import {
|
|
1367
|
+
import {
|
|
1368
|
+
kCurrentWorker,
|
|
1369
|
+
Log,
|
|
1370
|
+
LogLevel,
|
|
1371
|
+
Response as MiniflareResponse
|
|
1372
|
+
} from "miniflare";
|
|
1373
|
+
import { globSync } from "tinyglobby";
|
|
1376
1374
|
import "vite";
|
|
1377
1375
|
import {
|
|
1378
1376
|
unstable_getMiniflareWorkerOptions,
|
|
@@ -1406,11 +1404,10 @@ function getWorkerToWorkerEntrypointNamesMap(workers) {
|
|
|
1406
1404
|
);
|
|
1407
1405
|
for (const worker of workers) {
|
|
1408
1406
|
for (const value of Object.values(worker.serviceBindings ?? {})) {
|
|
1409
|
-
if (typeof value === "object" && "name" in value &&
|
|
1410
|
-
const
|
|
1411
|
-
|
|
1412
|
-
);
|
|
1413
|
-
assert4(entrypointNames, missingWorkerErrorMessage(value.name));
|
|
1407
|
+
if (typeof value === "object" && "name" in value && value.entrypoint !== void 0 && value.entrypoint !== "default") {
|
|
1408
|
+
const targetWorkerName = value.name === kCurrentWorker ? worker.name : value.name;
|
|
1409
|
+
const entrypointNames = workerToWorkerEntrypointNamesMap.get(targetWorkerName);
|
|
1410
|
+
assert4(entrypointNames, missingWorkerErrorMessage(targetWorkerName));
|
|
1414
1411
|
entrypointNames.add(value.entrypoint);
|
|
1415
1412
|
}
|
|
1416
1413
|
}
|
|
@@ -1592,8 +1589,7 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1592
1589
|
const moduleRE = new RegExp(MODULE_PATTERN);
|
|
1593
1590
|
const shouldExternalize = (
|
|
1594
1591
|
// Worker modules (CompiledWasm, Text, Data)
|
|
1595
|
-
moduleRE.test(moduleId)
|
|
1596
|
-
nodeBuiltInModules.has(moduleId)
|
|
1592
|
+
moduleRE.test(moduleId)
|
|
1597
1593
|
);
|
|
1598
1594
|
if (shouldExternalize) {
|
|
1599
1595
|
const result2 = {
|
|
@@ -1661,7 +1657,7 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1661
1657
|
const workflowEntrypointClassNames = workerToWorkflowEntrypointClassNamesMap.get(workerOptions.name);
|
|
1662
1658
|
assert4(
|
|
1663
1659
|
workflowEntrypointClassNames,
|
|
1664
|
-
`WorkflowEntrypoint class names not found for worker ${workerOptions.name}`
|
|
1660
|
+
`WorkflowEntrypoint class names not found for worker: ${workerOptions.name}`
|
|
1665
1661
|
);
|
|
1666
1662
|
for (const className of [...workflowEntrypointClassNames].sort()) {
|
|
1667
1663
|
wrappers.push(
|
|
@@ -1697,17 +1693,19 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1697
1693
|
);
|
|
1698
1694
|
const moduleRE = new RegExp(MODULE_PATTERN);
|
|
1699
1695
|
const match = moduleRE.exec(rawSpecifier);
|
|
1700
|
-
assert4(match, `Unexpected error: no match for module ${rawSpecifier}.`);
|
|
1696
|
+
assert4(match, `Unexpected error: no match for module: ${rawSpecifier}.`);
|
|
1701
1697
|
const [full, moduleType, modulePath] = match;
|
|
1702
1698
|
assert4(
|
|
1703
1699
|
modulePath,
|
|
1704
|
-
`Unexpected error: module path not found in reference ${full}.`
|
|
1700
|
+
`Unexpected error: module path not found in reference: ${full}.`
|
|
1705
1701
|
);
|
|
1706
1702
|
let source;
|
|
1707
1703
|
try {
|
|
1708
1704
|
source = fs2.readFileSync(modulePath);
|
|
1709
1705
|
} catch (error) {
|
|
1710
|
-
throw new Error(
|
|
1706
|
+
throw new Error(
|
|
1707
|
+
`Import "${modulePath}" not found. Does the file exist?`
|
|
1708
|
+
);
|
|
1711
1709
|
}
|
|
1712
1710
|
return MiniflareResponse.json({
|
|
1713
1711
|
// Cap'n Proto expects byte arrays for `:Data` typed fields from JSON
|
|
@@ -1716,6 +1714,26 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1716
1714
|
}
|
|
1717
1715
|
};
|
|
1718
1716
|
}
|
|
1717
|
+
function getPreviewModules(main, modulesRules) {
|
|
1718
|
+
assert4(modulesRules, `Unexpected error: 'modulesRules' is undefined`);
|
|
1719
|
+
const rootPath = path3.dirname(main);
|
|
1720
|
+
const entryPath = path3.basename(main);
|
|
1721
|
+
return {
|
|
1722
|
+
rootPath,
|
|
1723
|
+
modules: [
|
|
1724
|
+
{
|
|
1725
|
+
type: "ESModule",
|
|
1726
|
+
path: entryPath
|
|
1727
|
+
},
|
|
1728
|
+
...modulesRules.flatMap(
|
|
1729
|
+
({ type, include }) => globSync(include, { cwd: rootPath, ignore: entryPath }).map((path8) => ({
|
|
1730
|
+
type,
|
|
1731
|
+
path: path8
|
|
1732
|
+
}))
|
|
1733
|
+
)
|
|
1734
|
+
]
|
|
1735
|
+
};
|
|
1736
|
+
}
|
|
1719
1737
|
function getPreviewMiniflareOptions(vitePreviewServer, persistState) {
|
|
1720
1738
|
const resolvedViteConfig = vitePreviewServer.config;
|
|
1721
1739
|
const configPaths = getWorkerConfigPaths(resolvedViteConfig.root);
|
|
@@ -1724,13 +1742,12 @@ function getPreviewMiniflareOptions(vitePreviewServer, persistState) {
|
|
|
1724
1742
|
);
|
|
1725
1743
|
const workers = workerConfigs.map((config) => {
|
|
1726
1744
|
const miniflareWorkerOptions = unstable_getMiniflareWorkerOptions(config);
|
|
1727
|
-
const { ratelimits, ...workerOptions } = miniflareWorkerOptions.workerOptions;
|
|
1745
|
+
const { ratelimits, modulesRules, ...workerOptions } = miniflareWorkerOptions.workerOptions;
|
|
1728
1746
|
return {
|
|
1729
1747
|
...workerOptions,
|
|
1730
1748
|
// We have to add the name again because `unstable_getMiniflareWorkerOptions` sets it to `undefined`
|
|
1731
1749
|
name: config.name,
|
|
1732
|
-
modules: true,
|
|
1733
|
-
...miniflareWorkerOptions.main ? { scriptPath: miniflareWorkerOptions.main } : { script: "" }
|
|
1750
|
+
...miniflareWorkerOptions.main ? getPreviewModules(miniflareWorkerOptions.main, modulesRules) : { modules: true, script: "" }
|
|
1734
1751
|
};
|
|
1735
1752
|
});
|
|
1736
1753
|
const logger = new ViteMiniflareLogger(resolvedViteConfig);
|
|
@@ -7313,7 +7330,7 @@ Parser.acorn = {
|
|
|
7313
7330
|
};
|
|
7314
7331
|
|
|
7315
7332
|
// ../../node_modules/.pnpm/mlly@1.7.4/node_modules/mlly/dist/index.mjs
|
|
7316
|
-
import { builtinModules
|
|
7333
|
+
import { builtinModules, createRequire } from "node:module";
|
|
7317
7334
|
import fs3, { realpathSync, statSync as statSync2, promises } from "node:fs";
|
|
7318
7335
|
|
|
7319
7336
|
// ../../node_modules/.pnpm/ufo@1.5.4/node_modules/ufo/dist/index.mjs
|
|
@@ -7373,10 +7390,10 @@ var isAbsolute = function(p) {
|
|
|
7373
7390
|
import { fileURLToPath as fileURLToPath$1, URL as URL$1, pathToFileURL as pathToFileURL$1 } from "node:url";
|
|
7374
7391
|
import assert5 from "node:assert";
|
|
7375
7392
|
import process$1 from "node:process";
|
|
7376
|
-
import path4, { dirname as
|
|
7393
|
+
import path4, { dirname as dirname4 } from "node:path";
|
|
7377
7394
|
import v8 from "node:v8";
|
|
7378
7395
|
import { format as format2, inspect } from "node:util";
|
|
7379
|
-
var BUILTIN_MODULES = new Set(
|
|
7396
|
+
var BUILTIN_MODULES = new Set(builtinModules);
|
|
7380
7397
|
function normalizeSlash(path8) {
|
|
7381
7398
|
return path8.replace(/\\/g, "/");
|
|
7382
7399
|
}
|
|
@@ -8490,7 +8507,7 @@ function parsePackageName(specifier, base) {
|
|
|
8490
8507
|
return { packageName, packageSubpath, isScoped };
|
|
8491
8508
|
}
|
|
8492
8509
|
function packageResolve(specifier, base, conditions) {
|
|
8493
|
-
if (
|
|
8510
|
+
if (builtinModules.includes(specifier)) {
|
|
8494
8511
|
return new URL$1("node:" + specifier);
|
|
8495
8512
|
}
|
|
8496
8513
|
const { packageName, packageSubpath, isScoped } = parsePackageName(
|
|
@@ -8577,7 +8594,7 @@ function moduleResolve(specifier, base, conditions, preserveSymlinks) {
|
|
|
8577
8594
|
try {
|
|
8578
8595
|
resolved = new URL$1(specifier);
|
|
8579
8596
|
} catch (error_) {
|
|
8580
|
-
if (isRemote && !
|
|
8597
|
+
if (isRemote && !builtinModules.includes(specifier)) {
|
|
8581
8598
|
const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);
|
|
8582
8599
|
error.cause = error_;
|
|
8583
8600
|
throw error;
|
|
@@ -8722,7 +8739,8 @@ var { env } = defineEnv({
|
|
|
8722
8739
|
nodeCompat: true,
|
|
8723
8740
|
presets: [cloudflare]
|
|
8724
8741
|
});
|
|
8725
|
-
var
|
|
8742
|
+
var nodeCompatExternals = new Set(env.external);
|
|
8743
|
+
var nodeCompatEntries = getNodeCompatEntries();
|
|
8726
8744
|
function isNodeCompat(workerConfig) {
|
|
8727
8745
|
if (workerConfig === void 0) {
|
|
8728
8746
|
return false;
|
|
@@ -8750,12 +8768,17 @@ function injectGlobalCode(id, code) {
|
|
|
8750
8768
|
const injectedCode = Object.entries(env.inject).map(([globalName, globalInject]) => {
|
|
8751
8769
|
if (typeof globalInject === "string") {
|
|
8752
8770
|
const moduleSpecifier2 = globalInject;
|
|
8753
|
-
return `import var_${globalName} from "${
|
|
8771
|
+
return `import var_${globalName} from "${moduleSpecifier2}";
|
|
8754
8772
|
globalThis.${globalName} = var_${globalName};
|
|
8755
8773
|
`;
|
|
8756
8774
|
}
|
|
8757
8775
|
const [moduleSpecifier, exportName] = globalInject;
|
|
8758
|
-
|
|
8776
|
+
assert6(
|
|
8777
|
+
moduleSpecifier !== void 0,
|
|
8778
|
+
"Expected moduleSpecifier to be defined"
|
|
8779
|
+
);
|
|
8780
|
+
assert6(exportName !== void 0, "Expected exportName to be defined");
|
|
8781
|
+
return `import var_${globalName} from "${moduleSpecifier}";
|
|
8759
8782
|
globalThis.${globalName} = var_${globalName}.${exportName};
|
|
8760
8783
|
`;
|
|
8761
8784
|
}).join("\n");
|
|
@@ -8766,37 +8789,36 @@ globalThis.${globalName} = var_${globalName}.${exportName};
|
|
|
8766
8789
|
map: modified.generateMap({ hires: "boundary", source: id })
|
|
8767
8790
|
};
|
|
8768
8791
|
}
|
|
8769
|
-
function getNodeCompatAliases() {
|
|
8770
|
-
const aliases = {};
|
|
8771
|
-
Object.keys(env.alias).forEach((key) => {
|
|
8772
|
-
if (!env.external.includes(key)) {
|
|
8773
|
-
aliases[key] = CLOUDFLARE_VIRTUAL_PREFIX + key;
|
|
8774
|
-
}
|
|
8775
|
-
});
|
|
8776
|
-
return aliases;
|
|
8777
|
-
}
|
|
8778
|
-
function getNodeCompatExternals() {
|
|
8779
|
-
return env.external;
|
|
8780
|
-
}
|
|
8781
|
-
function maybeStripNodeJsVirtualPrefix(source) {
|
|
8782
|
-
return source.startsWith(CLOUDFLARE_VIRTUAL_PREFIX) ? source.slice(CLOUDFLARE_VIRTUAL_PREFIX.length) : void 0;
|
|
8783
|
-
}
|
|
8784
8792
|
function resolveNodeJSImport(source) {
|
|
8785
8793
|
const alias = env.alias[source];
|
|
8786
8794
|
if (alias) {
|
|
8787
|
-
|
|
8788
|
-
|
|
8789
|
-
|
|
8790
|
-
|
|
8791
|
-
|
|
8795
|
+
return {
|
|
8796
|
+
unresolved: alias,
|
|
8797
|
+
resolved: resolvePathSync(alias, { url: import.meta.url })
|
|
8798
|
+
};
|
|
8799
|
+
}
|
|
8800
|
+
if (nodeCompatEntries.has(source)) {
|
|
8801
|
+
return {
|
|
8802
|
+
unresolved: source,
|
|
8803
|
+
resolved: resolvePathSync(source, { url: import.meta.url })
|
|
8804
|
+
};
|
|
8792
8805
|
}
|
|
8793
|
-
|
|
8794
|
-
|
|
8795
|
-
|
|
8796
|
-
|
|
8797
|
-
|
|
8798
|
-
|
|
8799
|
-
|
|
8806
|
+
}
|
|
8807
|
+
function getNodeCompatEntries() {
|
|
8808
|
+
const entries = new Set(Object.values(env.alias));
|
|
8809
|
+
for (const globalInject of Object.values(env.inject)) {
|
|
8810
|
+
if (typeof globalInject === "string") {
|
|
8811
|
+
entries.add(globalInject);
|
|
8812
|
+
} else {
|
|
8813
|
+
assert6(
|
|
8814
|
+
globalInject[0] !== void 0,
|
|
8815
|
+
"Expected first element of globalInject to be defined"
|
|
8816
|
+
);
|
|
8817
|
+
entries.add(globalInject[0]);
|
|
8818
|
+
}
|
|
8819
|
+
}
|
|
8820
|
+
nodeCompatExternals.forEach((external) => entries.delete(external));
|
|
8821
|
+
return entries;
|
|
8800
8822
|
}
|
|
8801
8823
|
|
|
8802
8824
|
// src/plugin-config.ts
|
|
@@ -9109,9 +9131,9 @@ function resolvePluginConfig(pluginConfig, userConfig, viteEnv) {
|
|
|
9109
9131
|
}
|
|
9110
9132
|
|
|
9111
9133
|
// src/websockets.ts
|
|
9112
|
-
import
|
|
9134
|
+
import { WebSocketServer } from "ws";
|
|
9113
9135
|
function handleWebSocket(httpServer, fetcher, logger) {
|
|
9114
|
-
const nodeWebSocket = new
|
|
9136
|
+
const nodeWebSocket = new WebSocketServer({ noServer: true });
|
|
9115
9137
|
httpServer.on(
|
|
9116
9138
|
"upgrade",
|
|
9117
9139
|
async (request, socket, head) => {
|
|
@@ -9220,7 +9242,7 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
9220
9242
|
}
|
|
9221
9243
|
} : void 0,
|
|
9222
9244
|
builder: {
|
|
9223
|
-
|
|
9245
|
+
buildApp: userConfig.builder?.buildApp ?? (async (builder) => {
|
|
9224
9246
|
const clientEnvironment = builder.environments.client;
|
|
9225
9247
|
const defaultHtmlPath = path7.resolve(
|
|
9226
9248
|
builder.config.root,
|
|
@@ -9246,7 +9268,7 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
9246
9268
|
)
|
|
9247
9269
|
);
|
|
9248
9270
|
}
|
|
9249
|
-
}
|
|
9271
|
+
})
|
|
9250
9272
|
}
|
|
9251
9273
|
};
|
|
9252
9274
|
},
|
|
@@ -9307,7 +9329,7 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
9307
9329
|
return;
|
|
9308
9330
|
}
|
|
9309
9331
|
config.no_bundle = true;
|
|
9310
|
-
config.rules = [{ type: "ESModule", globs: ["**/*.js"] }];
|
|
9332
|
+
config.rules = [{ type: "ESModule", globs: ["**/*.js", "**/*.mjs"] }];
|
|
9311
9333
|
if (config.unsafe && Object.keys(config.unsafe).length === 0) {
|
|
9312
9334
|
config.unsafe = void 0;
|
|
9313
9335
|
}
|
|
@@ -9465,49 +9487,61 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
9465
9487
|
apply(_config, env2) {
|
|
9466
9488
|
return !env2.isPreview;
|
|
9467
9489
|
},
|
|
9468
|
-
|
|
9469
|
-
|
|
9470
|
-
resolve: {
|
|
9471
|
-
alias: getNodeCompatAliases()
|
|
9472
|
-
}
|
|
9473
|
-
};
|
|
9474
|
-
},
|
|
9475
|
-
configEnvironment(environmentName) {
|
|
9476
|
-
const workerConfig = getWorkerConfig2(environmentName);
|
|
9477
|
-
if (isNodeCompat(workerConfig)) {
|
|
9490
|
+
configEnvironment(name2) {
|
|
9491
|
+
if (isNodeCompat(getWorkerConfig2(name2))) {
|
|
9478
9492
|
return {
|
|
9479
|
-
|
|
9480
|
-
|
|
9481
|
-
|
|
9482
|
-
|
|
9493
|
+
resolve: {
|
|
9494
|
+
builtins: [...nodeCompatExternals]
|
|
9495
|
+
},
|
|
9496
|
+
optimizeDeps: {
|
|
9497
|
+
// This is a list of dependency entry-points that should be pre-bundled.
|
|
9498
|
+
// In this case we provide a list of all the possible polyfills so that they are pre-bundled,
|
|
9499
|
+
// ready ahead the first request to the dev server.
|
|
9500
|
+
// Without this the dependency optimizer will try to bundle them on-the-fly in the middle of the first request,
|
|
9501
|
+
// which can potentially cause problems if it leads to previous pre-bundling to become stale and needing to be reloaded.
|
|
9502
|
+
// TODO: work out how to re-enable pre-bundling of these
|
|
9503
|
+
// include: [...getNodeCompatEntries()],
|
|
9504
|
+
// This is a list of module specifiers that the dependency optimizer should not follow when doing import analysis.
|
|
9505
|
+
// In this case we provide a list of all the Node.js modules, both those built-in to workerd and those that will be polyfilled.
|
|
9506
|
+
// Obviously we don't want/need the optimizer to try to process modules that are built-in;
|
|
9507
|
+
// But also we want to avoid following the ones that are polyfilled since the dependency-optimizer import analyzer does not
|
|
9508
|
+
// resolve these imports using our `resolveId()` hook causing the optimization step to fail.
|
|
9509
|
+
exclude: [
|
|
9510
|
+
...builtinModules2,
|
|
9511
|
+
...builtinModules2.map((m) => `node:${m}`)
|
|
9512
|
+
]
|
|
9483
9513
|
}
|
|
9484
9514
|
};
|
|
9485
9515
|
}
|
|
9486
9516
|
},
|
|
9517
|
+
applyToEnvironment(environment) {
|
|
9518
|
+
return isNodeCompat(getWorkerConfig2(environment.name));
|
|
9519
|
+
},
|
|
9520
|
+
// We need the resolver from this plugin to run before built-in ones, otherwise Vite's built-in
|
|
9521
|
+
// resolver will try to externalize the Node.js module imports (e.g. `perf_hooks` and `node:tty`)
|
|
9522
|
+
// rather than allowing the resolve hook here to alias then to polyfills.
|
|
9523
|
+
enforce: "pre",
|
|
9487
9524
|
async resolveId(source, importer, options) {
|
|
9488
|
-
const
|
|
9489
|
-
if (!
|
|
9490
|
-
return;
|
|
9525
|
+
const result = resolveNodeJSImport(source);
|
|
9526
|
+
if (!result) {
|
|
9527
|
+
return this.resolve(source, importer, options);
|
|
9491
9528
|
}
|
|
9492
|
-
|
|
9493
|
-
|
|
9494
|
-
|
|
9495
|
-
|
|
9496
|
-
|
|
9497
|
-
|
|
9498
|
-
|
|
9499
|
-
|
|
9500
|
-
|
|
9501
|
-
|
|
9502
|
-
return this.resolve(optimized, importer, options);
|
|
9529
|
+
if (this.environment.mode === "dev") {
|
|
9530
|
+
assert9(
|
|
9531
|
+
this.environment.depsOptimizer,
|
|
9532
|
+
"depsOptimizer is required in dev mode"
|
|
9533
|
+
);
|
|
9534
|
+
const { id } = this.environment.depsOptimizer.registerMissingImport(
|
|
9535
|
+
result.unresolved,
|
|
9536
|
+
result.resolved
|
|
9537
|
+
);
|
|
9538
|
+
return this.resolve(id, importer, options);
|
|
9503
9539
|
}
|
|
9504
|
-
return this.resolve(resolved, importer, options);
|
|
9540
|
+
return this.resolve(result.resolved, importer, options);
|
|
9505
9541
|
},
|
|
9506
9542
|
async transform(code, id) {
|
|
9507
9543
|
const workerConfig = getWorkerConfig2(this.environment.name);
|
|
9508
|
-
|
|
9509
|
-
return;
|
|
9510
|
-
}
|
|
9544
|
+
assert9(workerConfig, "Expected a worker config");
|
|
9511
9545
|
const resolvedId = await this.resolve(workerConfig.main);
|
|
9512
9546
|
if (id === resolvedId?.id) {
|
|
9513
9547
|
return injectGlobalCode(id, code);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudflare/vite-plugin",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-2138fef92",
|
|
4
4
|
"description": "Cloudflare plugin for Vite",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|
|
@@ -35,12 +35,13 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@cloudflare/unenv-preset": "1.1.1",
|
|
37
37
|
"@hattip/adapter-node": "^0.0.49",
|
|
38
|
+
"tinyglobby": "^0.2.12",
|
|
38
39
|
"unenv": "2.0.0-rc.1",
|
|
39
|
-
"ws": "
|
|
40
|
-
"miniflare": "0.0.0-
|
|
40
|
+
"ws": "8.18.0",
|
|
41
|
+
"miniflare": "0.0.0-2138fef92"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
|
-
"@cloudflare/workers-types": "^4.
|
|
44
|
+
"@cloudflare/workers-types": "^4.20250224.0",
|
|
44
45
|
"@types/node": "^22.10.1",
|
|
45
46
|
"@types/ws": "^8.5.13",
|
|
46
47
|
"magic-string": "^0.30.12",
|
|
@@ -50,10 +51,10 @@
|
|
|
50
51
|
"undici": "^5.28.5",
|
|
51
52
|
"vite": "^6.1.0",
|
|
52
53
|
"vitest": "~3.0.5",
|
|
53
|
-
"@cloudflare/workers-shared": "0.0.0-
|
|
54
|
-
"
|
|
54
|
+
"@cloudflare/workers-shared": "0.0.0-2138fef92",
|
|
55
|
+
"@cloudflare/mock-npm-registry": "0.0.0",
|
|
55
56
|
"@cloudflare/workers-tsconfig": "0.0.0",
|
|
56
|
-
"
|
|
57
|
+
"wrangler": "0.0.0-2138fef92"
|
|
57
58
|
},
|
|
58
59
|
"peerDependencies": {
|
|
59
60
|
"vite": "^6.1.0",
|