Я пытался запустить установку npm для моего файла package.json, но у меня много проблем. Он продолжает говорить «Ошибка: попытка разблокировать XXX, который не был заблокирован» на всех моих зависимостях. Вот один из них:
Error: Attempt to unlock tbd@~0.6.4, which hasn't been locked
at unlock (/usr/local/lib/node_modules/npm/lib/cache.js:1304:11)
at cb (/usr/local/lib/node_modules/npm/lib/cache.js:646:5)
at /usr/local/lib/node_modules/npm/lib/cache.js:655:20
at /usr/local/lib/node_modules/npm/lib/cache.js:1290:7
at /usr/local/lib/node_modules/npm/node_modules/lockfile/lockfile.js:167:38
at OpenReq.Req.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:144:5)
at OpenReq.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:64:22)
at Object.oncomplete (fs.js:107:15)
Если я попытаюсь запустить его как sudo, кажется, что он идет дальше и начинает устанавливать некоторые пакеты, но вместо этого появляются новые ошибки:
> chokidar@0.8.1 postinstall /Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/chokidar
> node setup-deps.js
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
node.js:811
var cwd = process.cwd();
^
Error: EACCES, permission denied
at Function.startup.resolveArgv0 (node.js:811:23)
at startup (node.js:58:13)
at node.js:902:3
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q'
npm ERR! error rolling back karma@0.10.9 { [Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q']
npm ERR! error rolling back errno: 53,
npm ERR! error rolling back code: 'ENOTEMPTY',
npm ERR! error rolling back path: '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q' }
npm ERR! Error: ENOENT, chown '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/socket.io/lib/socket.io.js'
Я недавно обновил мой узел и установки npm. Так что, возможно, это как-то связано с этим. Кроме того, большая часть моей разработки была в офисе, и сегодня я работаю через VPN, так что, возможно, это тоже как-то связано с этим.
Любые идеи?
node.js
npm
karma-runner
Ти Джей Киршнер
источник
источник
Ответы:
В соответствии с фотографией по адресу: https://github.com/npm/npm/issues/4815
Запустите эти команды в окне терминала (обратите внимание - НЕ заменяйте часть $ USER ... это команда linux, чтобы получить вашего пользователя!):
... и ... если вы на Mac (как и я) и по-прежнему видите ошибки после выполнения этих команд, то запустите эту последнюю, и у вас все будет хорошо. (Рекомендую вам попробовать выполнить тестирование до того, как вы это сделаете. Мне не нравится изменять разрешения для каталога ENTIRE / usr / local, если это действительно не кажется необходимым!)
источник
sudo chown -R `whoami` /usr/lib/node_modules/
chown
не изменил разрешения~/.npm/_locks
для меня. Я получил свою работу, запустивsudo chown -R myname ~/.npm/_locks
sudo chown -R $USER /usr/local/lib/node_modules
? Я запустил его, прежде чем прочитать, что это не очень хорошая идея ..Я работал с коллегой сегодня днем и выяснил, в чем проблема. Моя папка ".npm" в моем домашнем каталоге принадлежала пользователю root, а не мне. Я не уверен, что случилось с этим. Возможно, я однажды установил узел или npm в качестве администратора root. В любом случае, я просто побежал
sudo chown -R [username] .npm
и наконец смог снова запуститьnpm install
команды из своих проектов!источник
~/tmp/
или любое другое местоположение, которое Node использует в качестве временного местоположенияВ моем случае проблема заключалась в том, чтобы вызвать npm с пользователем, у которого нет каталога HOME, поэтому, например, следующая команда не будет выполнена:
Решением является предоставление каталога HOME, в котором
someUser
есть доступ для записи:источник
sudo -u someUser -i
, что запускает новую оболочку входа в систему. Я посмотрел на это еще немного, и код кэширования в npm использует переменную npm.cache, которую я предполагаю по умолчанию$HOME/.npm/
. У sudo также может быть другое поведение в зависимости от того, какая переменная HOME установлена в зависимости от конфигурации и наличия или отсутствия параметров командной строки.Была та же проблема и исправлена, изменив разрешения согласно принятому ответу:
Однако второй команды следует избегать, поскольку она снижает права системного ресурса (
sudo chown -R $USER /usr/local/lib/node_modules
). Не хорошая идея.Для справки: «usr»
/usr/local
означает Unix System Resources .источник
Ничто из этого не сработало для меня. Мне пришлось запустить буквально как root, выполнив следующее:
Затем пакет установлен на Linux Ubuntu 14.04.
источник
Следующая команда должна исправить проблемы с разрешениями:
Вы можете прочитать о других официально рекомендованных решениях здесь:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
источник
Мое решение:
в моем случае было:
Но я получил ту же проблему, наконец, после
это сработало !
источник
У меня была та же проблема, и я часами пытался исправить разрешение / владение файлами и каталогами, относящимися к npm, но безуспешно .
Внезапно я обнаружил, что у меня есть
~/.npmrc
файл сcache
записью, указывающей на несуществующий каталог. Удалил этоcache
свойство, чтобы использовать расположение кеша по умолчанию, и теперь оно решено.источник
отказ
Я пользователь Windows . Тем не менее, моя команда и я столкнулись с рядом проблем, связанных с ошибками установки npm.
Проблемы
Ниже приведен список извлеченных уроков и возможное радикальное решение, которое всегда нас спасало:
Включите журналы npm, чтобы лучше понять возможные проблемы с:
npm install --loglevel verbose
радикал
Установить Rimraf во всем мире
Запустите rimraf для node_modules :
Затем попробуйте запустить:
Предупреждение!
Или ее отсутствие. Будьте предельно внимательны к тому, что следует за командой
rimraf
. Нет предупреждений, нет подсказок, нет ничего. Он просто стирает каталог с этапа очистки земли, как будто его там никогда не было. Попробуйте на свой страх и риск.источник