diff --git a/vite-18361-resolve-file-url/.gitignore b/vite-18361-resolve-file-url/.gitignore new file mode 100644 index 0000000..f06235c --- /dev/null +++ b/vite-18361-resolve-file-url/.gitignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/vite-18361-resolve-file-url/README.md b/vite-18361-resolve-file-url/README.md new file mode 100644 index 0000000..6675611 --- /dev/null +++ b/vite-18361-resolve-file-url/README.md @@ -0,0 +1,55 @@ +- related https://github.com/vitejs/vite/pull/18361 + +## client dev + +```sh +$ pnpm dev +... +1:17:19 PM [vite] Internal server error: Failed to resolve import "file:///home/hiroshi/code/personal/reproductions/vite-18361-resolve-file-url/src/dep.js" from "virtual:test-dep". Does the file exist? + Plugin: vite:import-analysis + File: virtual:test-dep:2:34 + 1 | + 2 | import testDep from "file:///home/hiroshi/code/personal/reproductions/vite-18361-resolve-file-url/src/dep.js"; + | ^ + 3 | export default testDep + 4 | + +# ok +$ RESOLVE_FILE_URL=1 pnpm dev +``` + +## client build + +```sh +$ pnpm build +... +error during build: +[vite]: Rollup failed to resolve import "file:///home/hiroshi/code/personal/reproductions/vite-18361-resolve-file-url/src/dep.js" from "virtual:test-dep". +". + +$ RESOLVE_FILE_URL=1 pnpm build +``` + +## ssr dev + +```sh +$ node ssr.js dev +[ok] dep.js + +$ RESOLVE_FILE_URL=1 node ssr.js dev +``` + +## ssr build + +```sh +$ node ssr.js build +... +x Build failed in 29ms +node:internal/process/promises:394 + triggerUncaughtException(err, true /* fromPromise */); + ^ + +[vite]: Rollup failed to resolve import "file:///home/hiroshi/code/personal/reproductions/vite-18361-resolve-file-url/src/dep.js" from "virtual:test-dep". + +$ RESOLVE_FILE_URL=1 node ssr.js build +``` diff --git a/vite-18361-resolve-file-url/index.html b/vite-18361-resolve-file-url/index.html new file mode 100644 index 0000000..3b0ebec --- /dev/null +++ b/vite-18361-resolve-file-url/index.html @@ -0,0 +1,14 @@ + + + + + + + +
+ + + diff --git a/vite-18361-resolve-file-url/package.json b/vite-18361-resolve-file-url/package.json new file mode 100644 index 0000000..eabd810 --- /dev/null +++ b/vite-18361-resolve-file-url/package.json @@ -0,0 +1,16 @@ +{ + "name": "@hiogawa/vite-environment-examples-web-worker", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": {}, + "devDependencies": { + "@types/node": "^22.7.4", + "vite": "6.0.0-beta.3" + }, + "packageManager": "pnpm@9.12.1+sha512.e5a7e52a4183a02d5931057f7a0dbff9d5e9ce3161e33fa68ae392125b79282a8a8a470a51dfc8a0ed86221442eb2fb57019b0990ed24fab519bf0e1bc5ccfc4" +} diff --git a/vite-18361-resolve-file-url/pnpm-lock.yaml b/vite-18361-resolve-file-url/pnpm-lock.yaml new file mode 100644 index 0000000..0364d0b --- /dev/null +++ b/vite-18361-resolve-file-url/pnpm-lock.yaml @@ -0,0 +1,666 @@ +lockfileVersion: "9.0" + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + .: + devDependencies: + "@types/node": + specifier: ^22.7.4 + version: 22.7.4 + vite: + specifier: 6.0.0-beta.3 + version: 6.0.0-beta.3(@types/node@22.7.4) + +packages: + "@esbuild/aix-ppc64@0.24.0": + resolution: + { + integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==, + } + engines: { node: ">=18" } + cpu: [ppc64] + os: [aix] + + "@esbuild/android-arm64@0.24.0": + resolution: + { + integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [android] + + "@esbuild/android-arm@0.24.0": + resolution: + { + integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==, + } + engines: { node: ">=18" } + cpu: [arm] + os: [android] + + "@esbuild/android-x64@0.24.0": + resolution: + { + integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [android] + + "@esbuild/darwin-arm64@0.24.0": + resolution: + { + integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [darwin] + + "@esbuild/darwin-x64@0.24.0": + resolution: + { + integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [darwin] + + "@esbuild/freebsd-arm64@0.24.0": + resolution: + { + integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [freebsd] + + "@esbuild/freebsd-x64@0.24.0": + resolution: + { + integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [freebsd] + + "@esbuild/linux-arm64@0.24.0": + resolution: + { + integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [linux] + + "@esbuild/linux-arm@0.24.0": + resolution: + { + integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==, + } + engines: { node: ">=18" } + cpu: [arm] + os: [linux] + + "@esbuild/linux-ia32@0.24.0": + resolution: + { + integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==, + } + engines: { node: ">=18" } + cpu: [ia32] + os: [linux] + + "@esbuild/linux-loong64@0.24.0": + resolution: + { + integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==, + } + engines: { node: ">=18" } + cpu: [loong64] + os: [linux] + + "@esbuild/linux-mips64el@0.24.0": + resolution: + { + integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==, + } + engines: { node: ">=18" } + cpu: [mips64el] + os: [linux] + + "@esbuild/linux-ppc64@0.24.0": + resolution: + { + integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==, + } + engines: { node: ">=18" } + cpu: [ppc64] + os: [linux] + + "@esbuild/linux-riscv64@0.24.0": + resolution: + { + integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==, + } + engines: { node: ">=18" } + cpu: [riscv64] + os: [linux] + + "@esbuild/linux-s390x@0.24.0": + resolution: + { + integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==, + } + engines: { node: ">=18" } + cpu: [s390x] + os: [linux] + + "@esbuild/linux-x64@0.24.0": + resolution: + { + integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [linux] + + "@esbuild/netbsd-x64@0.24.0": + resolution: + { + integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [netbsd] + + "@esbuild/openbsd-arm64@0.24.0": + resolution: + { + integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [openbsd] + + "@esbuild/openbsd-x64@0.24.0": + resolution: + { + integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [openbsd] + + "@esbuild/sunos-x64@0.24.0": + resolution: + { + integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [sunos] + + "@esbuild/win32-arm64@0.24.0": + resolution: + { + integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [win32] + + "@esbuild/win32-ia32@0.24.0": + resolution: + { + integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==, + } + engines: { node: ">=18" } + cpu: [ia32] + os: [win32] + + "@esbuild/win32-x64@0.24.0": + resolution: + { + integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [win32] + + "@rollup/rollup-android-arm-eabi@4.22.5": + resolution: + { + integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==, + } + cpu: [arm] + os: [android] + + "@rollup/rollup-android-arm64@4.22.5": + resolution: + { + integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==, + } + cpu: [arm64] + os: [android] + + "@rollup/rollup-darwin-arm64@4.22.5": + resolution: + { + integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==, + } + cpu: [arm64] + os: [darwin] + + "@rollup/rollup-darwin-x64@4.22.5": + resolution: + { + integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==, + } + cpu: [x64] + os: [darwin] + + "@rollup/rollup-linux-arm-gnueabihf@4.22.5": + resolution: + { + integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==, + } + cpu: [arm] + os: [linux] + + "@rollup/rollup-linux-arm-musleabihf@4.22.5": + resolution: + { + integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==, + } + cpu: [arm] + os: [linux] + + "@rollup/rollup-linux-arm64-gnu@4.22.5": + resolution: + { + integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==, + } + cpu: [arm64] + os: [linux] + + "@rollup/rollup-linux-arm64-musl@4.22.5": + resolution: + { + integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==, + } + cpu: [arm64] + os: [linux] + + "@rollup/rollup-linux-powerpc64le-gnu@4.22.5": + resolution: + { + integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==, + } + cpu: [ppc64] + os: [linux] + + "@rollup/rollup-linux-riscv64-gnu@4.22.5": + resolution: + { + integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==, + } + cpu: [riscv64] + os: [linux] + + "@rollup/rollup-linux-s390x-gnu@4.22.5": + resolution: + { + integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==, + } + cpu: [s390x] + os: [linux] + + "@rollup/rollup-linux-x64-gnu@4.22.5": + resolution: + { + integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==, + } + cpu: [x64] + os: [linux] + + "@rollup/rollup-linux-x64-musl@4.22.5": + resolution: + { + integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==, + } + cpu: [x64] + os: [linux] + + "@rollup/rollup-win32-arm64-msvc@4.22.5": + resolution: + { + integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==, + } + cpu: [arm64] + os: [win32] + + "@rollup/rollup-win32-ia32-msvc@4.22.5": + resolution: + { + integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==, + } + cpu: [ia32] + os: [win32] + + "@rollup/rollup-win32-x64-msvc@4.22.5": + resolution: + { + integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==, + } + cpu: [x64] + os: [win32] + + "@types/estree@1.0.6": + resolution: + { + integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, + } + + "@types/node@22.7.4": + resolution: + { + integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==, + } + + esbuild@0.24.0: + resolution: + { + integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==, + } + engines: { node: ">=18" } + hasBin: true + + fsevents@2.3.3: + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + + nanoid@3.3.7: + resolution: + { + integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + + picocolors@1.1.0: + resolution: + { + integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==, + } + + postcss@8.4.47: + resolution: + { + integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==, + } + engines: { node: ^10 || ^12 || >=14 } + + rollup@4.22.5: + resolution: + { + integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==, + } + engines: { node: ">=18.0.0", npm: ">=8.0.0" } + hasBin: true + + source-map-js@1.2.1: + resolution: + { + integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, + } + engines: { node: ">=0.10.0" } + + undici-types@6.19.8: + resolution: + { + integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==, + } + + vite@6.0.0-beta.3: + resolution: + { + integrity: sha512-z8hUErPgonMIb0Zir3iquzkaLc5yS1Mnf71LSAxnGpcO60GV3S/NKsYBZ7CGB5mW5UI3slXNjxin6S4SSyPVBQ==, + } + engines: { node: ^18.0.0 || >=20.0.0 } + hasBin: true + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + +snapshots: + "@esbuild/aix-ppc64@0.24.0": + optional: true + + "@esbuild/android-arm64@0.24.0": + optional: true + + "@esbuild/android-arm@0.24.0": + optional: true + + "@esbuild/android-x64@0.24.0": + optional: true + + "@esbuild/darwin-arm64@0.24.0": + optional: true + + "@esbuild/darwin-x64@0.24.0": + optional: true + + "@esbuild/freebsd-arm64@0.24.0": + optional: true + + "@esbuild/freebsd-x64@0.24.0": + optional: true + + "@esbuild/linux-arm64@0.24.0": + optional: true + + "@esbuild/linux-arm@0.24.0": + optional: true + + "@esbuild/linux-ia32@0.24.0": + optional: true + + "@esbuild/linux-loong64@0.24.0": + optional: true + + "@esbuild/linux-mips64el@0.24.0": + optional: true + + "@esbuild/linux-ppc64@0.24.0": + optional: true + + "@esbuild/linux-riscv64@0.24.0": + optional: true + + "@esbuild/linux-s390x@0.24.0": + optional: true + + "@esbuild/linux-x64@0.24.0": + optional: true + + "@esbuild/netbsd-x64@0.24.0": + optional: true + + "@esbuild/openbsd-arm64@0.24.0": + optional: true + + "@esbuild/openbsd-x64@0.24.0": + optional: true + + "@esbuild/sunos-x64@0.24.0": + optional: true + + "@esbuild/win32-arm64@0.24.0": + optional: true + + "@esbuild/win32-ia32@0.24.0": + optional: true + + "@esbuild/win32-x64@0.24.0": + optional: true + + "@rollup/rollup-android-arm-eabi@4.22.5": + optional: true + + "@rollup/rollup-android-arm64@4.22.5": + optional: true + + "@rollup/rollup-darwin-arm64@4.22.5": + optional: true + + "@rollup/rollup-darwin-x64@4.22.5": + optional: true + + "@rollup/rollup-linux-arm-gnueabihf@4.22.5": + optional: true + + "@rollup/rollup-linux-arm-musleabihf@4.22.5": + optional: true + + "@rollup/rollup-linux-arm64-gnu@4.22.5": + optional: true + + "@rollup/rollup-linux-arm64-musl@4.22.5": + optional: true + + "@rollup/rollup-linux-powerpc64le-gnu@4.22.5": + optional: true + + "@rollup/rollup-linux-riscv64-gnu@4.22.5": + optional: true + + "@rollup/rollup-linux-s390x-gnu@4.22.5": + optional: true + + "@rollup/rollup-linux-x64-gnu@4.22.5": + optional: true + + "@rollup/rollup-linux-x64-musl@4.22.5": + optional: true + + "@rollup/rollup-win32-arm64-msvc@4.22.5": + optional: true + + "@rollup/rollup-win32-ia32-msvc@4.22.5": + optional: true + + "@rollup/rollup-win32-x64-msvc@4.22.5": + optional: true + + "@types/estree@1.0.6": {} + + "@types/node@22.7.4": + dependencies: + undici-types: 6.19.8 + + esbuild@0.24.0: + optionalDependencies: + "@esbuild/aix-ppc64": 0.24.0 + "@esbuild/android-arm": 0.24.0 + "@esbuild/android-arm64": 0.24.0 + "@esbuild/android-x64": 0.24.0 + "@esbuild/darwin-arm64": 0.24.0 + "@esbuild/darwin-x64": 0.24.0 + "@esbuild/freebsd-arm64": 0.24.0 + "@esbuild/freebsd-x64": 0.24.0 + "@esbuild/linux-arm": 0.24.0 + "@esbuild/linux-arm64": 0.24.0 + "@esbuild/linux-ia32": 0.24.0 + "@esbuild/linux-loong64": 0.24.0 + "@esbuild/linux-mips64el": 0.24.0 + "@esbuild/linux-ppc64": 0.24.0 + "@esbuild/linux-riscv64": 0.24.0 + "@esbuild/linux-s390x": 0.24.0 + "@esbuild/linux-x64": 0.24.0 + "@esbuild/netbsd-x64": 0.24.0 + "@esbuild/openbsd-arm64": 0.24.0 + "@esbuild/openbsd-x64": 0.24.0 + "@esbuild/sunos-x64": 0.24.0 + "@esbuild/win32-arm64": 0.24.0 + "@esbuild/win32-ia32": 0.24.0 + "@esbuild/win32-x64": 0.24.0 + + fsevents@2.3.3: + optional: true + + nanoid@3.3.7: {} + + picocolors@1.1.0: {} + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + rollup@4.22.5: + dependencies: + "@types/estree": 1.0.6 + optionalDependencies: + "@rollup/rollup-android-arm-eabi": 4.22.5 + "@rollup/rollup-android-arm64": 4.22.5 + "@rollup/rollup-darwin-arm64": 4.22.5 + "@rollup/rollup-darwin-x64": 4.22.5 + "@rollup/rollup-linux-arm-gnueabihf": 4.22.5 + "@rollup/rollup-linux-arm-musleabihf": 4.22.5 + "@rollup/rollup-linux-arm64-gnu": 4.22.5 + "@rollup/rollup-linux-arm64-musl": 4.22.5 + "@rollup/rollup-linux-powerpc64le-gnu": 4.22.5 + "@rollup/rollup-linux-riscv64-gnu": 4.22.5 + "@rollup/rollup-linux-s390x-gnu": 4.22.5 + "@rollup/rollup-linux-x64-gnu": 4.22.5 + "@rollup/rollup-linux-x64-musl": 4.22.5 + "@rollup/rollup-win32-arm64-msvc": 4.22.5 + "@rollup/rollup-win32-ia32-msvc": 4.22.5 + "@rollup/rollup-win32-x64-msvc": 4.22.5 + fsevents: 2.3.3 + + source-map-js@1.2.1: {} + + undici-types@6.19.8: {} + + vite@6.0.0-beta.3(@types/node@22.7.4): + dependencies: + esbuild: 0.24.0 + postcss: 8.4.47 + rollup: 4.22.5 + optionalDependencies: + "@types/node": 22.7.4 + fsevents: 2.3.3 diff --git a/vite-18361-resolve-file-url/src/dep.js b/vite-18361-resolve-file-url/src/dep.js new file mode 100644 index 0000000..e7bdd0d --- /dev/null +++ b/vite-18361-resolve-file-url/src/dep.js @@ -0,0 +1 @@ +export default "[ok] dep.js"; diff --git a/vite-18361-resolve-file-url/src/entry.js b/vite-18361-resolve-file-url/src/entry.js new file mode 100644 index 0000000..7bc3094 --- /dev/null +++ b/vite-18361-resolve-file-url/src/entry.js @@ -0,0 +1,7 @@ +import testDep from "virtual:test-dep"; + +export default testDep; + +if (typeof document !== "undefined") { + document.getElementById("root").innerHTML = `
${testDep}
`; +} diff --git a/vite-18361-resolve-file-url/ssr.js b/vite-18361-resolve-file-url/ssr.js new file mode 100644 index 0000000..1dc11f1 --- /dev/null +++ b/vite-18361-resolve-file-url/ssr.js @@ -0,0 +1,23 @@ +import { build, createServer } from "vite"; + +async function main() { + if (process.argv[2] === "dev") { + const server = await createServer({ + optimizeDeps: { + noDiscovery: true, + }, + }); + await server.listen(); + const mod = await server.ssrLoadModule("/src/entry.js"); + console.log(mod.default); + await server.close(); + } else { + await build({ + build: { + ssr: "/src/entry.js", + }, + }); + } +} + +main(); diff --git a/vite-18361-resolve-file-url/vite.config.ts b/vite-18361-resolve-file-url/vite.config.ts new file mode 100644 index 0000000..f16ef04 --- /dev/null +++ b/vite-18361-resolve-file-url/vite.config.ts @@ -0,0 +1,34 @@ +import { fileURLToPath } from "url"; +import { defineConfig } from "vite"; + +export default defineConfig((_env) => ({ + clearScreen: false, + plugins: [ + { + name: "repro", + resolveId(source, importer, options) { + if (source === "virtual:test-dep") { + return "\0" + source; + } + }, + // using a virtual module to import file url + load(id, options) { + if (id === "\0virtual:test-dep") { + const fileUrl = new URL("./src/dep.js", import.meta.url); + return ` + import testDep from ${JSON.stringify(fileUrl.href)}; + export default testDep; + `; + } + }, + }, + !!process.env["RESOLVE_FILE_URL"] && { + name: "resolve-file-url", + resolveId(source, importer, options) { + if (source.startsWith("file://")) { + return fileURLToPath(new URL(source)); + } + }, + }, + ], +}));