NPM не работает в Windows — двойной диск c в пути

#node.js #angular #npm

Вопрос:

Я установил версию узла 14.16.0 (в соответствии с онлайн-курсом, который я прохожу). Я попытался установить angular с npm с помощью команды npm install -g @angular/cli@11.2.3 (опять же в соответствии с курсом). Это выдало ошибку, поэтому я запустил npm-версию, чтобы посмотреть, работает ли вообще npm, и получил ту же ошибку.

Пожалуйста, обратите внимание, что путь кажется странным (C: диск записан дважды).

В этом и заключается ошибка:

 $ npm --version
internal/modules/cjs/loader.js:883
  throw err;
  ^

Error: Cannot find module 'C:cProgram Filesnodejsnode_modulesnpmbinnpm-cli.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)

    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72
:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
internal/modules/cjs/loader.js:883
  throw err;
  ^

Error: Cannot find module 'C:cProgram Filesnodejsnode_modulesnpmbinnpm-cli.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)

    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72
:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

 

Комментарии:

1. Вы пробовали установить Angular без @11.2.3?

2. @RafaeldeCastro Да. Я почти уверен, что это не связано с установкой Angular, а с чем-то, связанным с npm. У меня было что-то подобное около 2 лет назад, но, к сожалению, я не помню, как это было решено.

Ответ №1:

Если кто — то сталкивается с той же проблемой-она была решена просто путем удаления узла и установки последней версии. Я предполагаю, что с этой конкретной версией Windows что-то не так.

Редактировать:

выяснив, что мне пришлось использовать определенную версию node (в моем случае 14) из-за других зависимостей, я углубился и обнаружил, что в cProgram Filesnodejsnpm файле есть добавление переменной path, а затем отправил ее в node.exe. Простое решение, которое я нашел, состояло в том, чтобы удалить c префикс, который был добавлен в мой путь (в двух местах внутри скрипта), и это сработало! NPM_CLI_JS=${NPM_CLI_JS#"/c"}

Ответ №2:

Эта проблема может быть вызвана многими странными способами, одним из которых является вложение вашего проекта в очень глубокий каталог.

Например:

 C:usersuserdocumentswebDevelopmentjavascriptProjects**project1**
 

вложенность вашего проекта таким образом, по-видимому, делает npm неспособным распознавать все ваши пакеты в Windows.

Правка: После дальнейшего расследования, похоже, моя проблема возникла из-за того, что один из родительских каталогов содержал амперсанд (amp;).