npm установить модули, выбрасывающие ошибку ENOENT в локальном проекте внутри vagrant box - PullRequest
0 голосов
/ 11 апреля 2020

По какой-то причине Я получаю ошибку 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 не добавит их!

...