Я понял, как node.js разрешает модули.Откройте сеанс REPL и введите
❯ node
> module.paths
[ 'C:\\Users\\truong\\Projects\\DDAC\\repl\\node_modules',
'C:\\Users\\truong\\Projects\\DDAC\\node_modules',
'C:\\Users\\truong\\Projects\\node_modules',
'C:\\Users\\truong\\node_modules',
'C:\\Users\\node_modules',
'C:\\node_modules',
'C:\\Users\\truong\\.node_modules',
'C:\\Users\\truong\\.node_libraries',
'C:\\Program Files\\nodejs\\lib\\node' ]
> require('http-errors')
Error: Cannot find module 'http-errors'
at Function.Module._resolveFilename (module.js:536:15)
>
Node.js может разрешать только модули в этих путях.Даже у npm есть такая зависимость, но если нет имени каталога, точно такого же, как имя модуля, требование не может быть разрешено.Подробнее на этой статье .