npm install Error: rollbackFailedOptional


81

Khi tôi thử npm installcác gói mới, nó cho tôi thấy lỗi này:

rollbackFailedOptional: verb npm-session 585aaecfe5f9a82

node --version
8.4.0

npm --version
5.3.0

1
Tôi cũng nhận được lỗi tương tự. bạn đã tìm thấy bất kỳ giải pháp cho điều này?
Anil

Điều này rất có thể là do tường lửa của công ty bạn. Sử dụng kết nối internet không phải của công ty hoặc cố gắng đặt proxy do quản trị viên của công ty bạn cung cấp để truy cập máy chủ NPM repo.
Prometheus

Câu trả lời:


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

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

đã giải quyết vấn đề của tôi.

Một lần nữa: Hãy nhớ kiểm tra xem bạn đã kết nối Internet đúng cách chưa.


3
Giải thích thông tin này, nó không làm việc cho tôi quá.
Jorgesys

2
đối với tôi, cần sử dụng https://registry.npmjs.org/(lưu ý https)
Walty Yeung

bạn tiết kiệm ngày của tôi
Brilian Aringga

điều này đã không giải quyết vấn đề của tôi không may. Tôi đang sử dụng một mạng gia đình đơn giản, không có proxy, tôi đã gặp lỗi này và tắt trong một thời gian dài, đôi khi tôi sử dụng VS Code tôi có thể mở một lời nhắc cmd (không phải VS Code) và nó hoạt động, nhưng không IDE. Tôi vừa gỡ cài đặt NodeJS, xóa tất cả thư mục npm trong AppData, cài đặt lại và tôi vẫn gặp lỗi này.
Luke T O'Brien

55

Thử đi

npm config rm proxy
npm config rm https-proxy

3
Tôi cũng đã làm việc cho tôi, nhưng bạn có biết lệnh này đã làm gì và tại sao nó hoạt động không? Tôi đang tự hỏi nếu tôi cần phải cài đặt một cái gì đó thay thế. Cảm ơn!
aztec242

1
Lý do điều này hữu ích là bằng cách nào đó, cài đặt đăng ký của bạn đã được đặt thành một cái gì đó khác với mặc định và các lệnh này loại bỏ các cài đặt cấu hình đó, cho phép chúng hoàn nguyên về giá trị mặc định của chúng. Trong trường hợp của tôi, công việc của tôi sử dụng sổ đăng ký tùy chỉnh gần đây đã được đặt sau tường lửa. Làm việc trên một dự án cá nhân ở nhà, vì vậy tôi ghi đè cài đặt npm cho dự án này cụ thể trong thư mục này. Xem câu trả lời của @ lambda bên dưới để biết thêm chi tiết.
Andy Groff

Làm việc tốt. Sau khi thử rollBackFailed .. đã xuất hiện lại nhưng đã biến mất sau vài giây. Tôi đã cài đặt phần mềm bản địa chỉ với nó. Cảm ơn bạn
Md Ashraful Islam

2
Nó không làm việc cho tôi cho đến khi tôi cũng chạynpm config set registry http://registry.npmjs.org/
davis

Tương tự đối với tôi là @davis
kayleeFrye_onDeck

20

Trong trường hợp của tôi, tôi phải chỉnh sửa .npmrctrực tiếp và thêm cài đặt proxy theo cách thủ công.

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

Hy vọng điều này sẽ giúp ai đó.


Cảm ơn rất nhiều! Trong trường hợp của tôi (Kubuntu) các thiết lập mà bằng cách nào đó thêm vào sử dụng .npmrc tập tin dưới~/.npmrc
a1300

1
Tôi buồn rằng khi npm không thể truy cập sổ đăng ký, hành vi là treo ở đó với một thông báo trạng thái phức tạp và không có dấu hiệu cho thấy nó đang cố gắng truy cập máy chủ từ xa. Các công cụ dòng lệnh được quản lý tốt sẽ cho người dùng biết khi nào họ đang thực hiện các công cụ internet
Matt Montag

Tôi có thể tìm cài đặt proxy ở đâu? @miqrc
Akhila

Tôi cần thay đổi khóa thành 'https_proxy' để nó hoạt động, sử dụng npm v6.13.4
JamesP

18

Nguyên nhân của điều này có thể là sổ đăng ký NPM hiện tại của bạn . Cố gắng kiểm tra một .npmrctập tin . Chúng có thể ở nhiều địa điểm khác nhau:

  • tệp cấu hình mỗi dự án (/path/to/my/project/.npmrc )
  • tệp cấu hình cho mỗi người dùng (~/.npmrc )
  • tệp cấu hình chung ($PREFIX/etc/npmrc )
  • tệp cấu hình npm nội trang ( /path/to/npm/npmrc)

Trong số này có thể có một cái gì đó như

registry=https://mycustomregistry.example.org

cái nào sẽ ưu tiên hơn cái mặc định ( http://registry.npmjs.org/). Bạn có thể xóa dòng này trong tệp hoặc sử dụng sổ đăng ký mặc định như vậy:

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

2
chạy npm config set registry http://registry.npmjs.org/làm việc cho tôi sau khi cấu hình cài đặt proxy
rainversion_3

15

Nhiều khả năng là npm không thể truy cập đăng ký npm. Kiểm tra cấu hình proxy npm

Tôi gặp chính xác vấn đề tương tự trên Windows Server 2008 R2. Lúc đầu, tôi nghi ngờ Cấu hình Bảo mật Nâng cao của Internet Explorer nhưng sau khi tắt mà không thành công, sự cố hóa ra là npm không được định cấu hình để sử dụng kết nối proxy công ty của tôi với Internet.

Nó chỉ ra rằng npm không sử dụng cài đặt proxy có hiệu lực thông qua Tùy chọn Internet> tab Kết nối> Cài đặt mạng LAN trong đó máy chủ được đặt thành 'Tự động phát hiện cài đặt'. Việc được đặt để tự động phát hiện cài đặt không đảm bảo rằng proxy thực sự đang được sử dụng, điều đó chỉ có nghĩa là Windows sẽ tự động định cấu hình cài đặt proxy cho Internet Explorer nếu tìm thấy tệp đặc biệt'wpad.dat 'tại http://wpad. [Yourdomain .com] /wpad.dat .

Bạn có thể kiểm tra xem tệp wpad.dat có đang được sử dụng trong tổ chức của mình hay không bằng cách nhập thông tin sau vào trình duyệt web.

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

Nếu không có tệp nào thì có khả năng bạn không sử dụng proxy toàn tổ chức. Nếu ai đó quay lại trình duyệt thì ...

Ở cuối tệp này, bạn sẽ thấy một dòng cho biết

PROXY <host:port>;

Nó có thể được lặp lại nếu bạn có nhiều proxy. Máy chủ và cổng là cần thiết để yêu cầu npm sử dụng cài đặt proxy như sau:

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

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

Ví dụ: nếu proxy của bạn ở my.proxy.com trên cổng 8080 thì các lệnh npm sẽ là:

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

Khi tôi đã nói với npm proxy nào sẽ sử dụng, tất cả đều bắt đầu hoạt động trong đó, tôi có thể chạy các lệnh cài đặt mà không gặp sự cố.

Cảm ơn bài viết sau đây để được trợ giúp với việc khám phá tệp wpad.


6

Tôi đã thử làm theo các tùy chọn để khắc phục sự cố này và nó đã hoạt động.

  1. Gỡ cài đặt Node.js phiên bản 8.
  2. Cài đặt Node.js phiên bản 6.11.4
  3. Sử dụng tùy chọn đăng ký cùng với lệnh để cài đặt bất kỳ gói nào.

Ví dụ để cài đặt express tôi đã sử dụng lệnh sau.

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

hoặc là

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

Nếu bạn muốn cài đặt cục bộ trong bất kỳ thư mục cụ thể nào thì hãy sử dụng lệnh dưới đây. Lệnh dưới đây sẽ cài đặt express trên đường dẫn C:\Sample\Example1.

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

Lưu ý: Nếu bạn đang cài đặt cục bộ ở một vị trí cụ thể thì trước tiên hãy truy cập thư mục đó bằng lệnh và sau đó chạy lệnh trên. Nếu bạn không ở trong thư mục đó và chỉ đưa ra đường dẫn trong lệnh sẽ không hoạt động.

Nếu bạn gặp package.jsonlỗi thiếu, hãy chạy lệnh dưới đây trước khi cài đặt gói cục bộ

C:\Sample\Example1> npm init

lệnh trên sẽ tạo package.jsontệp. Không cần cung cấp bất kỳ dữ liệu nào. chỉ cần nhấn enter.

Lưu ý: Nếu bạn đang sử dụng tường lửa thì bạn có thể cần đặt proxy.


3

Xin chào, tôi cũng là người mới để phản ứng và tôi cũng gặp phải vấn đề này sau rất nhiều rắc rối, tôi đã tìm ra giải pháp: Chỉ cần chạy trong dấu nhắc lệnh hoặc thiết bị đầu cuối của bạn:

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

Điều này sẽ giải quyết vấn đề của bạn. Link tham khảo: http://blog.csdn.net/zhalcie2011/article/details/78726679


2
Liên kết đến một giải pháp được hoan nghênh, nhưng hãy đảm bảo rằng câu trả lời của bạn hữu ích nếu không có nó: thêm ngữ cảnh xung quanh liên kết để những người dùng đồng nghiệp của bạn sẽ biết nó là gì và tại sao nó ở đó, sau đó trích dẫn phần có liên quan nhất của trang bạn ' đang liên kết lại trong trường hợp trang đích không có sẵn. Các câu trả lời ít hơn một liên kết có thể bị xóa.
GrumpyCrouton

3

Đảm bảo rằng bạn có thể truy cập kho lưu trữ công ty mà bạn đã định cấu hình trong npm có sẵn. Kiểm tra kết nối VPN của bạn.

Khác đặt lại nó trở lại kho lưu trữ mặc định như bên dưới.

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

Chúc may mắn!!


3

Các lệnh sau đã giải quyết sự cố của tôi:

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

Nếu bạn có quyền truy cập vào sổ đăng ký nhưng vẫn xảy ra lỗi, không có gì được đề cập ở trên sẽ không hoạt động. Tôi lưu ý rằng vấn đề này chỉ áp dụng cho cài đặt của dự án cục bộ (tức là nếu bạn sử dụng -g để cài đặt toàn cầu, mọi thứ đều hoạt động tốt).

Điều gì đã giải quyết được vấn đề cho tôi: chỉ cần xóa mục nhập liên quan đến gói bạn sẽ cài đặt khỏi tệp package.json của dự án. Sau đó, cuộc gọi tiếp theo tới npm sẽ hoạt động và cài đặt gói thành công.


1

Tôi đã có tác dụng tương tự khi tạo ứng dụng phản ứng với PhpStorm. Và cuối cùng nó chỉ nói done. Chạy cùng một lệnh trong thiết bị đầu cuối đã cho tôi lỗi chi tiết. Thư mục dự án tôi đã tạo có tênreact có vẻ là không cần thiết.

Đảm bảo rằng thư mục dự án của bạn không được đặt tên react.


0

thử đi:

xóa tất cả tệp trong thư mục:% APPDATA% \ npm-cache \ _locks


0

Đối với Windows: Chạy lại trình cài đặt và chọn 'Sửa chữa' cài đặt

Đã làm cho tôi


0

Có vẻ như lỗi này vẫn chưa được sửa [1]. Một số người làm việc, một số người không. Tôi cũng không được làm việc.

Tôi đã thử xóa bộ nhớ cache bằng lệnh: npm cache verifysau đó chạy lại lệnh cài đặt. Tôi đã làm việc.

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


0

Tôi gặp vấn đề tương tự. Nhưng nó có thể chạy đúng cách khi chuyển từ mạng nội bộ của công ty sang mạng khách.


0

Tôi đặt hai biến môi trường hệ thống -

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

Điều này thực sự làm việc cho tôi.


0

Trong một số trường hợp hiếm hoi hơn, hãy kiểm tra xem dự án có thể được xây dựng bằng các npmlệnh thông thường hay không . Tôi đã gặp phải một cái được định cấu hình để hoạt động bower, vì vậy bower install <github_url>hoạt động trong khi npm install <github_url>đưa ra thông báo lỗi khó hiểu vô ích đó trên tất cả các nền tảng ...


0

Trong khi cài đặt công cụ dòng lệnh Angular (CLI), Nếu bạn gặp phải Lỗi khôi phục thì nó có thể xảy ra do mạng của bạn được kết nối với Mạng khách hàng hoặc Mạng công ty của bạn nơi bạn đang làm việc.

Vì vậy, hãy cố gắng cài đặt CLI trong mạng công cộng của bạn (hoặc Mạng điểm truy cập di động của bạn) thì bạn chắc chắn sẽ được cài đặt CLI.


0

Giải pháp : Giá trị mặc định của khóa 'proxy' và 'https-proxy' của cấu hình npm là NULL. Sau khi thực hiện thêm một số R & D, tôi đã cố gắng đặt giá trị cài đặt proxy thành khóa trên (giải pháp này hoạt động trong trường hợp của tôi).

Ngoài ra, cài đặt proxy tương tự cũng cần được áp dụng trong trình duyệt IE Cài đặt Internet >> Cài đặt >> Cài đặt mạng LAN.

Kết luận : Trong môi trường doanh nghiệp / một số proxy là cài đặt bắt buộc, nếu không, cài đặt npm sẽ không hoạt động.

Sự cố trên GitHub: https://github.com/SharePoint/sp-dev-docs/issues/3266

Bạn có thể tham khảo blog để biết thông tin chi tiết https://blogs2share.blogspot.com/2019/01/spfx-enosystem-setup-error.html


0

Bạn có thể giải quyết vấn đề bằng cách xem mạng của bạn có bất kỳ proxy nào đang cấm quá trình tải xuống hay không. Mạng của công ty tôi đã bật tường lửa, điều này gây ra sự cố cho tôi. Vì vậy, tôi phải chuyển sang một mạng không an toàn (có thể là một điểm phát sóng từ mạng di động của bạn) và điều đó đã phù hợp với tôi.


0

Của tôi là do tường lửa McAfee. Nó được đặt ở chế độ Hỏi, vì vậy đáng lẽ phải xuất hiện lời nhắc yêu cầu kết nối internet, nhưng nó đã không! Đi vào McAfee và (tạm thời!) Vô hiệu hóa tường lửa cho phép tôi cài đặt.


0

Tôi đã đặt proxy như mô tả ở trên và nó vẫn hoạt động cho đến hôm nay. Sau đó, hóa ra bây giờ tôi cần "http: //" trước địa chỉ proxy của mình: "http: // {proxyURL}: {proxyPort}". Sau đó, nó cuối cùng đã hoạt động.


0

Đã vật lộn với vấn đề này một thời gian trước khi tìm ra nó.
Tôi đang sử dụng cao Sierra (10.13.6)
gỡ và tái cài đặt nút và nvm nhiều lần - bằng cách sử dụng installer.pkg, HomeBrewvà sau đó sử dụng dòng lệnh. IMO, dòng lệnh hoạt động tốt nhất.

Tôi đã làm theo các bước sau:
1. Ran npm config ls -l
2. Kiểm tra rằng giá trị cho globalconfig$<installpath>/.nvm/versions/node/v12.16.3/etc/npmrcNhưng khi tôi cố gắng truy cập vào đường dẫn này trong Terminal, nó đã cho tôi No such file or directory
Vì vậy, tôi
3. tạo thư mục etc, tạo npmrctệp và thêm dòng này vào đó.

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


Tôi không có ~/.npmrctệp trong$HOME

Sau đó
4. Tôi đã chạy lại npm installlệnh.


Lưu ý rằng điều này vẫn rollbackFailedOptional: verb npm-sessiongây ra lỗi, nhưng lần này nó đã hoàn thành , mặc dù với một lỗi khác. Bạn có thể thử các bước này và xem nó có hoạt động không.

Đối với những người tò mò, nó đã Response timeout while trying to fetch https://registry.npmjs.org/<package> (over 30000ms)gây ra lỗi, vì vậy tôi đã thêm tệp timeout = "60000"vào /etc/npmrctệp (như được tìm thấy trên một chuỗi Stackoverflow khác) và thử lại. Điều này đã làm việc cho tôi.

Hi vọng điêu nay co ich!


0

Hãy thử tất cả lệnh này được trả lời tại đây để giải quyết sự cố https://stackoverflow.com/a/54173142/12142401 nếu sự cố vẫn tiếp diễn Thực hiện các bước sau

Gỡ cài đặt hoàn toàn nodejs hãy xem câu trả lời này để gỡ cài đặt hoàn toàn nodejs https://stackoverflow.com/a/20711410/12142401

Tải xuống thiết lập nodejs cập nhật từ trang web của họ Cài đặt nó vào bất kỳ ổ đĩa nào nhưng không phải trên ổ đĩa đã cài đặt trước đó như nếu bạn cài đặt trong ổ C sau đó cài đặt trong Ổ đĩa D, S, G Chạy lệnh npm của bạn, nó sẽ hoàn toàn hoạt động tốt


-2

Thử đi. Nó làm việc tốt cho tôi

NPM cài đặt / your_floder_location package_name --registry http://registry.npmjs.org/

Dưới đây là lệnh chính xác cho tôi để cài đặt gói vue-router trong dự án laravel của tôi (tên dự án của tôi là vue_laravel)

aslam004: vue_laravel $ NPM cài đặt / var / www / html / dự án / vue_laravel vue-router --registry http://registry.npmjs.org/

Chúc may mắn


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.