Open AlttiRi opened 2 years ago
Real life use case: moving C:/projects
(a folder with your projects) to another place, for example, to D:/projects
and creating a symbolic link in the old location that leads to the new location in order to keep all software (that relies on this path (like IDE)) working as earlier.
I expect that it will work totally transparently.
It's likely on this line that we didn't take into account of this specific case.
Or the other possibility is that esbuild doesn't correctly return the output
after bundling. Would you help check how this path look like on your machine? If it's incorrectly indexing the output
, would also appreciate if you can submit a PR for it.
function esbuildOutputFromId(outputs, id, cacheDirOutputPath) {
const flatId = flattenId(id) + '.js';
// ---
const wd = process.cwd();
const rel = path$n.relative(process.cwd(), path$n.join(cacheDirOutputPath, flatId));
const norm = normalizePath$3(rel);
console.log(wd); // C:\projects\linked-dir
console.log(rel); // node_modules\.vite\deps_temp\vue.js
console.log(norm); // node_modules/.vite/deps_temp/vue.js
console.log(Object.keys(outputs));
// [
// '../linked-dir/node_modules/.vite/deps_temp/vue.js.map',
// '../linked-dir/node_modules/.vite/deps_temp/vue.js'
// ]
// ---
return outputs[normalizePath$3(path$n.relative(process.cwd(), path$n.join(cacheDirOutputPath, flatId)))];
}
I had the same issue and I searched for 30 min ton understand what was going on...
@patak-dev You reopened this Issue? I am currently still experiencing this with v3.2.5 which I would assume would contain the fix since it was released 2 weeks ago. What's the status on this?
I guess this is related with https://github.com/nodejs/node/issues/34866, similar to #10802.
Have the same issue
on node v16.14.0 it shows
VITE v4.0.4 ready in 308 ms
➜ Local: http://127.0.0.1:5173/
➜ Network: use --host to expose
➜ press h to show help
file:///C:/Users/beck/Dropbox/PC/Documents/Projects/Training/my-vite-app/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:42832
fileHash: getHash(metadata.hash + depsInfo[id].file + JSON.stringify(output.imports)),
^
TypeError: Cannot read properties of undefined (reading 'imports')
at runOptimizeDeps (file:///C:/Users/beck/Dropbox/PC/Documents/Projects/Training/my-vite-app/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:42832:89)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
on node v14.20.0
(node:17836) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'imports' of undefined
at runOptimizeDeps (file:///C:/Users/beck/Dropbox/PC/Documents/Projects/Training/my-vite-app/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:42832:89)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:17836) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:17836) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Operating System Windows_NT(10.0.22000) - win32/x64
VITE v4.0.4
Same issue trying to create a template Svelte app.
VITE v4.0.4 ready in 343 ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
➜ press h to show help
file:///C:/Users/KARL/Dev/test.LAB/learn.webdev/learning/client/my-svelte-project/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:42832
fileHash: getHash(metadata.hash + depsInfo[id].file + JSON.stringify(output.imports)),
^
TypeError: Cannot read properties of undefined (reading 'imports')
at runOptimizeDeps (file:///C:/Users/KARL/Dev/test.LAB/learn.webdev/learning/client/my-svelte-project/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:42832:89)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Node.js v18.13.0
I search many sites, finally I know why my program failed to work! Thank you!
Still relevant found to be repeatable in vite as of node versions LTS (v20.11.1) and latest (v21.6.2) and vite (^5.0.11).
4:16:14 PM [vite] Pre-transform error: Failed to load url /src/main.js (resolved id: C:/Users/User/OneDrive/Desktop/Repos/ros-starter/src/main.js). Does the file exist?
file:///C:/Users/User/OneDrive/Desktop/Repos/ros-starter/node_modules/vite/dist/node/chunks/dep-G-px366b.js:52459
JSON.stringify(output.imports)),
^
TypeError: Cannot read properties of undefined (reading 'imports')
at file:///C:/Users/User/OneDrive/Desktop/Repos/ros-starter/node_modules/vite/dist/node/chunks/dep-G-px366b.js:52459:47
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
mklink /d linked-dir my-vue-app
treats my-vue-app
as your source folder and linked-dir
as a symbolic link. That's why cd linked-dir
> npm run dev
won't work.
Move the source folder to your linked-dir
(the place you want to run vite) and create a symbolic link to your old my-vue-app
folder. Then cd linked-dir
> npm run dev
will work!
I would like to provide some of my findings to help resolve this issue:
react
dependency. It's in peerDeps.packages/user
directory is missing between the projectRoot
and user
directories during output
parsing.for (const [key, value] of Object.entries(outputs)) {
if (key.includes('react.js') && id == 'react') {
console.log('cwd: ', cwd) // /Users/linhuangdong/Git/projectRoot
console.log('key: ', key) // ../user/node_modules/.vite/deps_temp_ee3bd11b/react.js
console.log('normalizedOutputPath: ', normalizedOutputPath) // packages/user/node_modules/.vite/deps_temp_ee3bd11b/react.js
}
if (normalizePath$3(path$n.relative(cwd, key)) === normalizedOutputPath) {
return value;
}
}
Describe the bug
Vite fails when I try to use it in a sym-linked directory.
Run in CMD:
Error:
Reproduction
Auto-generated
System Info
Used Package Manager
npm
Logs
No response
Validations