268 字
1 分鐘
Node.js 找不到套件

沒怎麽研究過 nodejs、npm 和 powershell,所以此文可能會讓人血壓升高

情境

(base) PS C:\Users\Username\Documents\GitHub\pr_test> tsx .\test_parsimmon_3.ts

錯誤

node:internal/modules/cjs/loader:1251
  throw err;
  ^

Error: Cannot find module 'C:\Users\Username\node_modules\tsx\dist\cli.mjs'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1248:15)
    at Module._load (node:internal/modules/cjs/loader:1074:27)
    at TracingChannel.traceSync (node:diagnostics_channel:315:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:217:24)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:166:5)
    at node:internal/main/run_main_module:30:49 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

一開始還沒心思深入研究,就是瘋狂 npm pnpm npx 的指令全都試一次
重新安裝一次,全局重新安裝一次,還是錯誤
然後把環境變數也刪一刪,依舊無效(而且是連 npx tsx 都無法運作成功)

後來發現 node_modules 的路徑指向C:\Users\Username\node_modules
繼續調查,tsx 執行的是C:\Users\Username\node_modules\.bin\tsx.ps1這個腳本
然後腳本再去尋找$basedir/../tsx/dist/cli.mjs,所以……可能是……從頭到尾套件都沒被安裝到 C:\Users\Username\node_modules

但爲什麼它沒有執行我 repo 中的 node_modules 的 tsx 呢,算了
也不知道是哪個環節有問題,我直接重裝 nodejs + 刪除C:\Users\Username\node_modules就解決了
想追根究底也來不及了,反正應該是混用套件管理器造成的問題,一刪解千愁

Node.js 找不到套件
https://tsuyumi.cc/posts/nodejs-找不到套件/
作者
露水
發佈於
2024-10-02
許可協議
CC BY-NC-SA 4.0