英文:
nodejs: UNMET DEPENDENCY type@module / How can I get `npm list` stop returning this error?
问题
D:\TEMP\nodejs\count>npm list
TEMP@ D:\TEMP
+-- file-type@17.1.1
+-- html2pdf.js@0.10.1
+-- html2pdf@0.0.11
+-- mysql@2.18.1
+-- sqlite3@5.0.3
`-- UNMET DEPENDENCY type@module
npm ERR! code ELSPROBLEMS
npm ERR! missing: type@module, required by TEMP@
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Luuk\AppData\Local\npm-cache\_logs23-01-07T17_11_04_588Z-debug-0.log
- The logfile is of no help (to me)
 - I did search using Google, but that was not leading to a solution.
 
I removed nodejs from my computer, then re-installed it. This is giving the exact same error.
For re-installing I used node-v18.12.1-x64.msi
EDIT: Installing using node-v18.13.0-x64.msi gives the same problems.
How can I get npm list to stop returning this error?
BTW: The directory D:\TEMP\nodejs\count is an empty directory on My Windows 11 system.
BTW: The word error is mentioned here in that log file:
D:\TEMP\nodejs\count>findstr /i error "C:\Users\Luuk\AppData\Local\npm-cache\_logs23-01-07T17_11_04_588Z-debug-0.log"
38 verbose stack Error: missing: type@module, required by TEMP@
43 error code ELSPROBLEMS
44 error missing: type@module, required by TEMP@
48 error A complete log of this run can be found in:
48 error C:\Users\Luuk\AppData\Local\npm-cache\_logs23-01-07T17_11_04_588Z-debug-0.log
EDIT:
- After removing the 
node_modulesdirectory (move node_modules node_modules.1), in the directoryC:\Program Files\nodejs - I did 
npm cache cleanwhich produced: 
D:\TEMP\nodejs\count>npm cache clean
node:internal/modules/cjs/loader:1042
  throw err;
  ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1039:15)
    at Module._load (node:internal/modules/cjs/loader:885:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
Node.js v18.13.0
node:internal/modules/cjs/loader:1042
  throw err;
  ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1039:15)
    at Module._load (node:internal/modules/cjs/loader:885:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
Node.js v18.13.0
英文:
D:\TEMP\nodejs\count>npm list
TEMP@ D:\TEMP
+-- file-type@17.1.1
+-- html2pdf.js@0.10.1
+-- html2pdf@0.0.11
+-- mysql@2.18.1
+-- sqlite3@5.0.3
`-- UNMET DEPENDENCY type@module
npm ERR! code ELSPROBLEMS
npm ERR! missing: type@module, required by TEMP@
npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Luuk\AppData\Local\npm-cache\_logs23-01-07T17_11_04_588Z-debug-0.log
- The logfile is of no help (to me)
 - I did search using Google, but that was not leading to a solution.
 
I removed nodejs from my computer, then re-installed it This is giving the exact same error.
For re-installing I used node-v18.12.1-x64.msi
EDIT: Installing using node-v18.13.0-x64.msi gives same problems.
How can I get npm list stop returning this error?
BTW: The directory D:\TEMP\nodejs\count is an empty directory on My Windows 11 system.
BTW: The word error is mentioned here in that log file:
D:\TEMP\nodejs\count>findstr /i error "C:\Users\Luuk\AppData\Local\npm-cache\_logs23-01-07T17_11_04_588Z-debug-0.log"
38 verbose stack Error: missing: type@module, required by TEMP@
43 error code ELSPROBLEMS
44 error missing: type@module, required by TEMP@
48 error A complete log of this run can be found in:
48 error     C:\Users\Luuk\AppData\Local\npm-cache\_logs23-01-07T17_11_04_588Z-debug-0.log
EDIT:
- After removing the 
node_modulesdirectory (move node_modules node_modules.1, in the directoryC:\Program Files\nodejs) - I did 
npm cache cleanwhich produced: 
D:\TEMP\nodejs\count>npm cache clean
node:internal/modules/cjs/loader:1042
  throw err;
  ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1039:15)
    at Module._load (node:internal/modules/cjs/loader:885:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
Node.js v18.13.0
node:internal/modules/cjs/loader:1042
  throw err;
  ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1039:15)
    at Module._load (node:internal/modules/cjs/loader:885:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
Node.js v18.13.0
答案1
得分: 0
NPM的依赖解析器似乎有些问题,因此不能完全信任NPM的安全建议和工具,如NPM审计和NPM列表。阅读这个 - https://github.com/npm/npm/issues/1341#issuecomment-20634338
这里是解决该问题的快速方法 -
步骤1 - 删除node_modules目录
步骤2 - 运行 npm cache clean
步骤3 - 运行 npm install
英文:
NPM's dependency resolver seems to be broken a bit due to which NPM's security suggestions and tools such as NPM audit, NPM list cannot be trusted fully. Read this - https://github.com/npm/npm/issues/1341#issuecomment-20634338
Here a quick fix for the issue that may help -
Step 1 - Remove node_modules directory
Step 2 - Run npm cache clean
Step 3 - Run npm install
答案2
得分: 0
看起来我需要使用npm init创建一个(空的)应用程序,这将创建一个名为"package.json"的文件,其中包含以下内容(当要求输入名称时,我输入了"test",然后在其他问题上只是按了回车键):
{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}
之后:
D:\TEMP\npm>npm list
test@1.0.0 D:\TEMP\npm
`-- (empty)
D:\TEMP\npm>npm update
up to date, audited 1 package in 72ms
found 0 vulnerabilities
英文:
It seems that i need to create a (emtpy) application using npm init, which will create a file name "package.json", which has the following contents (I entered "test", whan a name was asked, and just hit the enter button on the rest of the questions):
{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}
After this:
D:\TEMP\npm>npm list
test@1.0.0 D:\TEMP\npm
`-- (empty)
D:\TEMP\npm>npm update
up to date, audited 1 package in 72ms
found 0 vulnerabilities
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论