По какой-то причине Я получаю ошибку ENOENT на большинстве (но не на всех) модулях, которые я пытаюсь установить локально .
Все функции установки NPM работают - без SUDO (что важно в этой системе) - если я нахожусь в корневой / глобальной папке (home / vagrant /).
$ nvm --version
0.35.3
$ npm -version
6.14.4
$ node -v
v13.12.0
$ which npm
/home/vagrant/.nvm/versions/node/v13.12.0/bin/npm
Но у меня есть проект локального узла в / var / www/html/node/
Большинство NPM пакетов выдают ошибку ENOENT, когда я пытаюсь их установить, но некоторые, кажется, работают: я не могу понять, почему!
Следующая работа (и обновление локального пакета. json):
npm install underscore
npm install debug
npm install chokidar
Но гораздо более важные модули ниже всех выдают вариацию одной и той же ошибки (с или без sudo). ):
npm install express
npm install webpack
npm install http-server
npm install npm-check-updates
(и многие другие)
Я все еще могу размещать приложение. js в этой папке, если мой скрипт не вызывает любой из них, но как только мне «нужен» модуль, который не может быть установлен, он падает.
Ошибка, которую я получаю на npm install [module]
(с или без sudo, -g или --s ave / - save-dev) является версией следующего:
npm WARN node@1.0.0 No description
npm WARN node@1.0.0 No repository field.
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /var/www/html/node/node_modules/send/node_modules/debug/node_modules/ms/package.json.3354100157
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/var/www/html/node/node_modules/send/node_modules/debug/node_modules/ms/package.json.3354100157'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! /home/vagrant/.npm/_logs/2020-04-11T11_00_48_913Z-debug.log
Я пытался: - Уничтожить мой бродячий ящик и переустановить его - переустановить npm, узел и nvm (несколько раз - что, кажется, работает, но есть много «красных» устаревших предупреждений) - NPM очистка кэша, npm удаление, npm очистка кэша -force, npm очистка-установка - удаление блокировки пакета. json (и пакет. json) перед каждой npm установкой. Поправка к «глобальной» папке установки в глобальной npm установке производится с помощью нижеприведенного - однако это дает мне ошибку nvm is not compatible with the npm config "prefix" option
, которая настаивает на том, чтобы я сбрасывал префикс возвращается к умолчанию.
# Set global npm package install to a location that doesn't require sudo
cd ~ && mkdir .node_modules_global
npm config set prefix=$HOME/.node_modules_global
# Now secondarily install npm in the new global location
npm install npm@latest -g
# Add the global npm folder to the path directory
export PATH="$HOME/.node_modules_global/bin:$PATH"
source ~/.bashrc
Ошибка для других модулей идентична ошибке, скопированной выше, кроме разных путей (в / var / www/html/node/node_modules/assert/node_modules/util/, / var / www/html/node/node_modules/follow-redirects/node_modules/debug/ и / var / www/html/node/node_modules/ansi-align/node_modules/strip-ansi*). Моя папка node_modules не содержит этих подпапок, но я не могу понять, почему NPM install не добавит их!