Помилка встановлення npm: rollbackFailedO optional


82

Коли я пробую npm installнові пакети, це показує мені цю помилку:

rollbackFailedO optional: дієслово npm-session 585aaecfe5f9a82

node --version
8.4.0

npm --version
5.3.0

1
Я також отримую ту ж помилку. ти знайшов якесь рішення для цього?
Аніль,

Це, швидше за все, пов’язано з брандмауером вашої компанії. Використовуйте з’єднання з Інтернетом, яке не належить компанії, або спробуйте встановити проксі-сервер, який надається адміністратором вашої компанії, для доступу до сервера репозиторію NPM.
Прометей

Відповіді:


90
    # first this
    > npm config rm proxy
    > npm config rm https-proxy

    # then this
    > npm config set registry https://registry.npmjs.org/

вирішив мою проблему.

Ще раз: обов’язково перевірте, чи правильно підключений Інтернет.


3
Поясніть цю інформацію, вона також не працювала у мене.
Jorgesys

2
для мене потрібно використовувати https://registry.npmjs.org/(зверніть увагу на https)
Walty Yeung

1
ти врятуєш мій день
Бріліан Арінгга

це, на жаль, не вирішило мого питання. Я просто в домашній мережі, немає проксі-сервера, ця помилка у мене вмикається і вимикається протягом тривалого часу, іноді, коли я використовую код VS, я можу відкрити підказку cmd (не код VS), і це працює, але не в IDE. Я щойно видалив NodeJS, видалив усі папки npm в AppData, переінсталював, і ця помилка все ще є.
Люк Т О'Брайен

56

Спробуйте це

npm config rm proxy
npm config rm https-proxy

3
Я теж працював у мене, але чи знаєте ви, що робила ця команда і чому вона спрацювала? Мені цікаво, чи мені потрібно замість цього щось встановити. Дякую!
aztec242

1
Причина, по якій це допомагає, полягає в тому, що якимось чином параметри вашого реєстру були встановлені на щось інше, ніж за замовчуванням, і ці команди видаляють ці налаштування конфігурації і дозволяють їм повернутися до значень за замовчуванням. У моєму випадку в моїй роботі використовується спеціальний реєстр, який нещодавно був поставлений за брандмауер. Працюючи над особистим проектом вдома, я перезаписую налаштування npm для цього проекту спеціально в цьому каталозі. Докладнішу інформацію див. У відповіді @ lambda нижче.
Енді Грофф,

Працював нормально. Після спроби rollBackFailed .. з'явився знову, але пішов через кілька секунд. Я встановив нативскрипт easyilly з ним. Дякую
Md Ashraful Islam

2
Це не спрацювало для мене, поки я також не бігnpm config set registry http://registry.npmjs.org/
Девіс,

Те саме для мене, що і @davis
kayleeFrye_onDeck

20

У моєму випадку мені довелося редагувати .npmrcбезпосередньо та додавати налаштування проксі вручну.

proxy=http://yourorganizationproxy.com:8080
https-proxy=http://yourorganizationproxy.com:8080

Сподіваюся, це комусь допомагає.


Дуже дякую! У моєму випадку (Kubuntu) налаштування, де якимось чином додано до користувацького .npmrc файлу під~/.npmrc
a1300

1
Мені прикро, що коли npm не може дістатися до реєстру, поведінка полягає в тому, щоб повісити його там із загадковим повідомленням про стан і без ознак того, що він намагається зв’язатися з віддаленим хостом. Добре виховані інструменти командного рядка повинні повідомляти користувачам, коли вони займаються Інтернетом,
Метт Монтег,

Де я можу знайти налаштування проксі? @miqrc
Akhila

Мені потрібно було змінити ключ на 'https_proxy', щоб він працював, використовуючи npm v6.13.4
JamesP

18

Причиною цього може бути ваш поточний реєстр NPM . Спробуйте перевірити наявність .npmrcфайлу . Вони можуть бути в різних місцях:

  • файл конфігурації для кожного проекту ( /path/to/my/project/.npmrc)
  • файл конфігурації для кожного користувача ( ~/.npmrc)
  • глобальний конфігураційний файл ( $PREFIX/etc/npmrc)
  • npm вбудований конфігураційний файл ( /path/to/npm/npmrc)

Усередині них може бути щось на зразок

registry=https://mycustomregistry.example.org

який матиме пріоритет над типовим ( http://registry.npmjs.org/). Ви можете видалити цей рядок у файлі або скористатися реєстром за замовчуванням таким чином:

npm <command> --registry http://registry.npmjs.org/

2
запуск npm config set registry http://registry.npmjs.org/спрацював у мене після налаштування параметрів проксі
rainversion_3

16

Швидше за все, це буде реєстр npm, до якого неможливо отримати доступ до npm. Перевірте конфігурацію проксі-сервера npm

У мене була така сама проблема на Windows Server 2008 R2. Спочатку я підозрював у розширеній конфігурації безпеки Internet Explorer, але після його безуспішного вимкнення виявилося, що npm не налаштований на використання мого корпоративного проксі-з'єднання з Інтернетом.

Виявляється, npm не використовує параметри проксі, що діють через Властивості браузера> вкладка «З’єднання»> «Налаштування локальної мережі», де сервер встановлений на «Автоматичне визначення параметрів». Налаштування автоматичного виявлення параметрів не гарантує, що справді використовується проксі-сервер, це просто означає, що Windows автоматично налаштує параметри проксі-сервера для Internet Explorer, якщо знайде спеціальний файл 'wpad.dat' за адресою http: // wpad. [Yourdomain .com] /wpad.dat .

Ви можете перевірити, чи використовується файл wpad.dat у вашій організації, ввівши в веб-браузер наступне.

http://wpad.[yourcompany.domain]/wpad.dat

Якщо жоден файл недоступний, то, швидше за все, ви не використовуєте проксі-сервер для всієї організації. Якщо хтось повертається до браузера, тоді ...

Внизу цього файлу ви побачите рядок із написом

PROXY <host:port>;

Це може повторитися, якщо у вас є кілька проксі-серверів. Хост і порт потрібні для того, щоб сказати npm використовувати параметри проксі так:

npm config set proxy http://[host]:[port]

і

npm config set https-proxy http://[host]:[port]

Наприклад, якщо ваш проксі знаходиться на my.proxy.com на порту 8080, тоді команди npm будуть такими:

npm config set proxy http://my.proxy.com:8080
npm config set https-proxy http://my.proxy.com:8080

Після того, як я сказав npm, який проксі використовувати все, що почало працювати, я зміг запустити команди встановлення без проблем.

Завдяки наступному допису за допомогу щодо виявлення файлу wpad.


6

Я спробував наступні варіанти, щоб вирішити цю проблему, і це спрацювало.

  1. Видаліть Node.js версії 8.
  2. Встановіть Node.js версії 6.11.4
  3. Використовуйте параметр реєстру разом із командою, щоб встановити будь-який пакет.

Наприклад, для встановлення express я використовував наступну команду.

npm install express --registry http://registry.npmjs.org/

або

npm install express -g --registry http://registry.npmjs.org/

Якщо ви хочете встановити локально в будь-якій конкретній папці, використовуйте команду нижче. Нижче команда встановить express на шлях C:\Sample\Example1.

C:\Sample1\Example1> npm install /Sample/Example1 express --registry http://registry.npmjs.org/

Примітка: Якщо ви встановлюєте локально в певному місці, спочатку перейдіть до цього каталогу за допомогою команди, а потім запустіть вище команди. Якщо ви не знаходитесь у цьому каталозі і вказуєте лише шлях у команді, який не буде працювати.

Якщо у вас package.jsonвиникла помилка, запустіть команду нижче, перш ніж встановлювати пакет локально

C:\Sample\Example1> npm init

наведена вище команда створить package.jsonфайл. Не потрібно надавати будь-які дані. просто натисніть Enter.

Примітка. Якщо ви знаходитесь за брандмауером, можливо, вам доведеться встановити проксі-сервер.


3

Привіт, я також новачок у реагуванні, і я також зіткнувся з цією проблемою після багатьох проблем, я знайшов рішення: Просто запустіть у своєму командному рядку або терміналі:

npm config set registry http://registry.npmjs.org/

Це вирішить вашу проблему. Посилання на посилання: http://blog.csdn.net/zhalcie2011/article/details/78726679


2
Посилання на рішення вітається, але будь ласка, переконайтесь, що ваша відповідь корисна без нього: додайте контекст навколо посилання, щоб ваші однодумці мали певне уявлення, що це таке і чому воно є, а потім цитуйте найбільш релевантну частину сторінки, яку ви “ повторне посилання на випадок, якщо цільова сторінка буде недоступна. Відповіді, які є лише кількома посиланнями, можуть бути видалені.
GrumpyCrouton

3

Переконайтеся, що ви можете отримати доступ до корпоративного сховища, яке ви налаштували в npm. Перевірте підключення до VPN.

В іншому випадку поверніть його назад до сховища за замовчуванням, як показано нижче.

npm config set registry http://registry.npmjs.org/

Щасти!!


3

Наступні команди вирішили мою проблему:

npm config set proxy http://yourproxyurl.com:8080  (you need to enter your or your company proxy URL and 8080 should be replaced by your proxy port)

npm config set https-proxy http://yourproxyurl.com:8080

1

Якщо у вас є доступ до реєстру, але помилка все-таки сталася, нічого із зазначеного вище не буде працювати. Я зазначив, що ця проблема застосовна лише до встановлення локального проекту (тобто якщо ви використовуєте -g для глобальної інсталяції, все працює нормально).

Що вирішило проблему для мене: просто видаліть запис про пакет, який ви збираєтесь встановити, з файлу package.json проекту. Після цього наступний виклик npm запрацює та успішно встановить пакет.


1

Я мав такий самий ефект, створюючи додаток для реагування за допомогою PhpStorm. А потім в кінці це просто говорить done. Запуск тієї самої команди в терміналі дав мені докладні помилки. Папку проекту, яку я створив, було названо, reactщо, схоже, заборонено.

Переконайтесь, що папка проекту не названа react.


0

спробуйте це:

видалити весь файл у папці:% APPDATA% \ npm-cache \ _locks


0

Для Windows: Запустіть інсталятор ще раз і виберіть "Відновити" інсталяцію

Працював у мене


0

Здається, ця помилка ще не виправлена ​​[1]. Хтось працює, хтось ні. Я теж не працюю.

Я спробував очистити кеш за допомогою команди: npm cache verifyпотім знову запустіть команду встановлення. Я працював.

[1]. https://github.com/npm/npm/issues/17246


0

У мене була та сама проблема. Але він може працювати належним чином із переходом від внутрішньої мережі компанії до мережі відвідувачів.


0

Я встановив дві змінні системного середовища -

  1. HTTP_PROXY = <_proxy_url_>
  2. HTTPS_PROXY = <_proxy_url_>

Це насправді спрацювало для мене.


0

У деяких рідкісних випадках перевірте, чи можна створити проект за допомогою звичайних npmкоманд. Я зіткнувся з одним, який налаштований на роботу bower, тому bower install <github_url>працює, поки npm install <github_url>видає це безпомічне повідомлення про загадкові помилки на всіх платформах ...


0

Під час інсталяції інструмента командного рядка Angular (CLI), якщо ви отримуєте помилку відкату, це може статися через те, що ваша мережа підключена до вашої мережі клієнтів або вашої компанії, де ви працюєте.

Тож спробуйте встановити CLI у свою загальнодоступну мережу (або мережу гарячих точок вашого мобільного), тоді ви точно встановите CLI.


0

Рішення : Значення за замовчуванням для ключа "proxy" та "https-proxy" у конфігурації npm - NULL. Провівши ще кілька досліджень та розробок, я спробував встановити значення налаштування проксі-сервера вище клавіші (це рішення працює в моєму сценарії).

Крім того, ті самі налаштування проксі потрібно застосовувати в браузері IE Налаштування Інтернету >> Налаштування >> Налаштування локальної мережі.

Висновок : У корпоративному / якомусь середовищі проксі є дещо обов'язковим налаштуванням, інакше встановлення npm не буде працювати.

Випуск на GitHub: https://github.com/SharePoint/sp-dev-docs/issues/3266

Ви можете звернутися до блогу для отримання детальної інформації https://blogs2share.blogspot.com/2019/01/spfx-environment-setup-error.html


0

Ви можете вирішити проблему, перевіривши, чи є у вашій мережі проксі-сервери, що забороняє процес завантаження. У мережі моєї компанії був увімкнений брандмауер, що спричинило проблему для мене. Тож мені довелося перейти на незахищену мережу (можливо, гарячу точку з вашої мобільної мережі), і це мені вдалося.


0

Моя була через брандмауер McAfee. Він налаштований на режим запитання, тому повинен був з’явитись запит про підключення до Інтернету, але це не так! Вхід у McAfee та (тимчасово!) Відключення брандмауера дозволили мені встановити.


0

У мене вже були встановлені довірені особи, як описано вище, і це працювало до сьогодні. Потім виявилося, що тепер мені потрібно "http: //" перед адресою проксі: "http: // {proxyURL}: {proxyPort}". Тоді це нарешті спрацювало.


0

Деякий час боровся з цим питанням, перш ніж з’ясувати його.
Я використовую High Sierra (10.13.6)
невстановлений і повторно встановлений вузол і NVM кілька разів - з допомогою installer.pkg, HomeBrewі потім з допомогою командного рядка. IMO, командний рядок працює найкраще.

Я виконав ці кроки:
1. Пробіг npm config ls -l
2. Перевірив, що значення globalconfigбуло, $<installpath>/.nvm/versions/node/v12.16.3/etc/npmrcале коли я спробував дістатися до цього шляху в Терміналі, це дало мені, No such file or directory
отже, я
3. створив папку etc, створив npmrcфайл і додав у нього цей рядок.

registry = "https://registry.npmjs.org/"


У мене немає ~/.npmrcфайлу в моєму$HOME

Потім
4. Я повторно запустив npm installкоманду.


Зауважте, що rollbackFailedOptional: verb npm-sessionпомилка все-таки викинула помилку, але цього разу вона завершилася , хоча з іншою помилкою. Ви можете спробувати ці кроки і перевірити, чи це працює.

Для тих, хто цікавиться, це призвело до Response timeout while trying to fetch https://registry.npmjs.org/<package> (over 30000ms)помилки, тому я додав файл timeout = "60000"у /etc/npmrcфайл (як знайдено в іншому потоці Stackoverflow) і спробував ще раз. Це спрацювало для мене.

Сподіваюся, це допомагає!


0

Спробуйте цю команду, на яку відповіли тут, щоб вирішити проблему https://stackoverflow.com/a/54173142/12142401, якщо проблема не зникає Виконайте наступні кроки

Повністю Видаліть nodejs checkout цю відповідь для повного видалення nodejs https://stackoverflow.com/a/20711410/12142401

Завантажте оновлену установку nodejs з їх веб-сайту Встановіть її на будь-який диск, але не на раніше встановлений диск, наприклад, якщо ви встановили на диск C, то встановіть на D, S, G Drive Запустіть команду npm, вона буде повністю працювати нормально


-2

Спробуйте це. У мене це добре працювало

НПМ установки / your_floder_location package_name --registry http://registry.npmjs.org/

Нижче наведена точна команда для мене для встановлення пакету vue-router у моєму проекті laravel (ім’я мого проекту vue_laravel)

aslam004: vue_laravel $ npm install / var / www / html / projects / vue_laravel vue-router --registry http://registry.npmjs.org/

Удачі


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.