«обновление справки npm» (в Windows) выдает ошибку недопустимого URL-адреса

#node.js #url #npm

Вопрос:

У меня есть nodejs v16.13.0 и npm 8.1.0.

Когда я запускаю команду npm help update в cmd или PowerShell (администратор и обычный) Я получаю следующую ошибку

 npm help update
npm ERR! Invalid URL: file://C:Program Filesnodejsnode_modulesnpmdocsoutputcommandsnpm-update.html
 

Я могу подтвердить, что файл существует в указанном месте, но по какой-то причине команда неправильно считывает путь. Есть ли файл, в который мне нужно внести изменения?

Я не нашел ни одного подходящего решения(ов) в Интернете… и до сих пор здесь тоже нет.

Ответ №1:

У меня та же проблема со всей справкой npm … команды, например:

 C:DEVyoutube>npm help npm
npm ERR! Invalid URL: file://C:UsersmirekAppDataRoamingnpmnode_modulesnpmdocsoutputcommandsnpm.html

npm ERR! A complete log of this run file:///C:/Users/mirek/AppData/Roaming/npm/node_modules/npm/docs/output/commands/npm.htmlcan be found in:
npm ERR!     C:UsersmirekAppDataLocalnpm-cache_logs2021-11-04T06_20_51_613Z-debug.log
 

Похоже, что это проблема с закодированным URL-адресом, потому что сам файл существует. Если URL — адрес расшифрован в

 file:///C:/Users/mirek/AppData/Roaming/npm/node_modules/npm/docs/output/commands/npm.html
 

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

 C:UsersmirekAppDataLocalnpm-cache_logs2021-11-04T06_20_51_613Z-debug.log
 

проблема заключается в

 C:UsersmirekAppDataRoamingnpmnode_modulesnpmlibutilsopen-url.js:31:11.
 

Который пытается проверить правильность URL-адреса файла. Однако, по-видимому, у него проблема с закодированным URL-адресом.

Поэтому я попытался прокомментировать строку 7 в этом файле, которая кодирует URL:

 5.    // attempt to open URL in web-browser, print address otherwise:
6:    const open = async (npm, url, errMsg) => {
7:      //url = encodeURI(url)
8:      const browser = npm.config.get('browser')
 

После этой модификации он работает просто отлично.

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

1. ОБНОВЛЕНИЕ: Строка encodeURI(url) была добавлена 27 сентября 2021 года, см. github.com/npm/cli/pull/3804 .

2. Это решило проблему. Спасибо. Однако файл находился в папке «Мои программные файлы».