簡體   English   中英

npm 安裝錯誤:rollbackFailedOptional

[英]npm install Error: rollbackFailedOptional

當我嘗試npm install新包時,它顯示了這個錯誤:

回滾失敗可選:動詞 npm-session 585aaecfe5f9a82

node --version
8.4.0

npm --version
5.3.0
    # first this
    > npm config rm proxy
    > npm config rm https-proxy

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

解決了我的問題。

再次:請務必檢查您是否已正確連接互聯網。

試試這個

npm config rm proxy
npm config rm https-proxy

就我而言,我必須直接編輯.npmrc並手動添加代理設置。

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

希望這可以幫助某人。

造成這種情況的原因可能是您當前的 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/

最有可能是 npm 注冊表無法通過 npm 訪問。 檢查 npm 代理配置

我在 Windows Server 2008 R2 上遇到了完全相同的問題。 起初我懷疑 Internet Explorer 的增強安全配置,但在將其關閉但沒有成功后,問題是 npm 未配置為使用我的公司代理連接到 Internet。

事實證明,npm 不使用通過 Internet 選項 > 連接選項卡 > LAN 設置生效的代理設置,其中服務器設置為“自動檢測設置”。 設置為自動檢測設置並不能保證確實使用了代理,這只是意味着如果 Windows 在http://wpad.[yourdomain]找到特殊的“wpad.dat”文件,它會自動為 Internet Explorer 配置代理設置.com]/wpad.dat

您可以通過在 Web 瀏覽器中鍵入以下內容來測試您的組織中是否正在使用 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 文件發現的幫助。

我嘗試了以下選項來解決這個問題,它奏效了。

  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/

如果要本地安裝在任何特定文件夾中,請使用以下命令。 下面的命令將在路徑C:\\Sample\\Example1上安裝 express。

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

注意:如果您在特定位置本地安裝,則首先使用命令轉到該目錄,然后運行上面的命令。 如果您不在該目錄中並且僅在命令中提供路徑,則該路徑將不起作用。

如果你得到package.json missing 錯誤,那么在本地安裝包之前運行下面的命令

C:\Sample\Example1> npm init

上面的命令將創建package.json文件。 無需提供任何數據。 只需點擊進入。

注意:如果您在防火牆后面,那么您可能需要設置代理。

就我而言,我將 npm set 注冊表設置為 https://nexus,使用:

npm config delete registry

這將恢復到其默認狀態。

嗨,我也是新來的,經過這么多麻煩,我也遇到了這個問題,我找到了解決方案:只需在命令提示符或終端中運行:

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

這將解決您的問題。 參考鏈接: http : //blog.csdn.net/zhalcie2011/article/details/78726679

確保您可以訪問您在 npm 中配置的公司存儲庫可用。檢查您的 VPN 連接。

否則將其重置回默認存儲庫,如下所示。

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

祝你好運!!

以下命令解決了我的問題:

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

我用 PhpStorm 創建了一個 React 應用程序也有同樣的效果。 然后最后它只是說done 在終端中運行相同的命令給了我詳細的錯誤。 我創建的項目文件夾名為react ,這似乎是不可行的。

確保您的項目文件夾未命名為react

如果您有權訪問注冊表但仍然發生錯誤,則上述任何內容都不起作用。 我注意到這個問題僅適用於本地項目的安裝(即,如果您使用 -g 進行全局安裝,一切正常)。

什么為我解決了問題:只需從項目的 package.json 文件中刪除有關您要安裝的包的條目。 之后對 npm 的下一次調用將工作並成功安裝包。

我有同樣的問題。 但從公司內部網絡切換到訪客網絡,它可以正常運行。

我設置了兩個系統環境變量-

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

這實際上對我有用。

在極少數情況下,檢查項目是否可以使用常規npm命令構建。 我遇到了一個配置為與bower ,因此bower install <github_url>可以工作,而npm install <github_url>在所有平台上都給出了無用的神秘錯誤消息...

在安裝 Angular 命令行工具 (CLI) 時,如果您收到回滾錯誤,則可能是由於您的網絡已連接到您正在處理的客戶端網絡或公司網絡。

所以請嘗試在您的公共網絡(或您手機的熱點網絡)中安裝 CLI,那么您肯定會安裝 CLI。

解決方案: npm config 的 'proxy' 和 'https-proxy' 鍵的默認值為 NULL。 在進行了更多的研發之后,我嘗試將代理設置值設置為上述鍵(此解決方案適用於我的場景)。

此外,需要在 IE 瀏覽器 Internet 設置 >> 設置 >> LAN 設置中應用相同的代理設置。

結論:在公司/某些環境中,代理是某種強制性設置,否則 npm install 將不起作用。

GitHub 上的問題: https : //github.com/SharePoint/sp-dev-docs/issues/3266

詳細信息可以參考博客https://blogs2share.blogspot.com/2019/01/spfx-environment-setup-error.html

您可以通過查看您的網絡是否有任何代理來解決該問題,即禁止下載過程。 我公司的網絡啟用了防火牆,這導致了我的問題。 所以我不得不切換到一個不安全的網絡(可能是你移動網絡的熱點),這對我有用。

我的原因是邁克菲防火牆。 它被設置為詢問模式,所以應該會彈出一個要求互聯網連接的提示,但它沒有! 進入 McAfee 並(暫時!)禁用防火牆允許我進行安裝。

我已經按照上述方式設置了代理,並且一直工作到今天。 然后事實證明,現在我需要在我的代理地址前面加上“http://”:“http://{proxyURL}:{proxyPort}”。 然后它終於奏效了。

在弄清楚這個問題之前與這個問題斗爭了一段時間。
我正在使用 High Sierra (10.13.6)
多次卸載並重新安裝 node 和 nvm - 使用installer.pkgHomeBrew ,然后使用命令行。 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/"


我的$HOME沒有~/.npmrc文件

然后
4. 我重新運行了npm install命令。


請注意,這仍然拋出了rollbackFailedOptional: verb npm-session錯誤,但這次它已完成,盡管出現了不同的錯誤。 您可以嘗試這些步驟,看看它是否有效。

對於那些好奇的人,它Response timeout while trying to fetch https://registry.npmjs.org/<package> (over 30000ms)錯誤時拋出了Response timeout while trying to fetch https://registry.npmjs.org/<package> (over 30000ms) ,因此我將timeout = "60000"/etc/npmrc文件中(在另一個 Stackoverflow 線程上找到),然后再試一次。 這對我有用。

希望這有幫助!

嘗試這里回答的所有命令以解決問題https://stackoverflow.com/a/54173142/12142401如果問題仍然存在請執行以下步驟

完全卸載 nodejs 檢查此答案以完全卸載 nodejs https://stackoverflow.com/a/20711410/12142401

從他們的網站下載更新的 nodejs 設置 將其安裝在任何驅動器上,但不要安裝在以前安裝的驅動器上,就像您安裝在 C 驅動器中然后安裝在 D、S、G 驅動器中一樣運行您的 npm 命令,它將完全正常工作

如果你像我一樣使用 vpm,請嘗試將其關閉一秒鍾,至少那是我的問題

我有同樣的問題。 我刪除了 Mac“/usr/local/bin/npm”、“/usr/local/bin/node”中的文件並刪除了文件夾“/usr/local/lib/node_modules”

然后安裝當前最新的節點功能版本。 然后問題解決了。

下載 LTS 版本時,它顯示相同的問題。 因此,嘗試安裝不同版本的節點並刪除舊版本。

你好,

對於使用紗線 package 的人。只需 go 到您遇到此問題的項目文件夾。 假設項目的文件夾名稱是 chatApp:

cd chatApp

然后,如果您已經完成 yarn 或 yarn install,則刪除 node_modules 文件夾並運行以下命令,或者如果您還沒有完成 yarn install,則只運行 blow 命令:

yarn cache clean

yarn 成功清理緩存后,運行以下命令:

yarn config set registry https://registry.npmjs.org/

就是這樣,這應該可以解決問題 ✔️。

試試這個:

刪除文件夾中的所有文件:%APPDATA%\\npm-cache\\_locks

對於 Windows:再次運行安裝程序並選擇“修復”安裝

為我工作

似乎此錯誤尚未修復 [1]。 有些人得到工作,有些人沒有。 我也沒有工作。

我嘗試使用命令清除緩存: npm cache verify然后再次運行安裝命令。 我工作了。

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

試試這個。 它對我來說很好用

npm install /your_floder_location package_name --registry http://registry.npmjs.org/

下面是我在 laravel 項目中安裝 vue-router 包的確切命令(我的項目名稱 vue_laravel)

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

祝你好運

在您的命令之前使用 sudo 作為


須藤 npm 安裝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM