本地使用 n8n 遇到問題:安裝 xlsx 時出現 npm EALLOWREMOTE

描述問題/錯誤/提問

我在 Windows 上本機運行 n8n。
我正在嘗試安裝 xlsx 套件,但出現以下錯誤:
npm ERR! code EALLOWREMOTE
npm ERR! 已停用「遠端」類型套件的擷取
npm ERR! 拒絕擷取 “xlsx@https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz
有人之前遇過這個問題嗎?
對於本機 n8n 設置,有推薦的方式來安裝 xlsx 套件嗎?

image

錯誤訊息是什麼(如有)?

請分享您的工作流

(在您的畫布上選擇節點,使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製和貼上工作流。)

分享最後一個節點返回的輸出

關於您的 n8n 設置的資訊

  • n8n 版本:
  • 資料庫(預設:SQLite):
  • n8n EXECUTIONS_PROCESS 設置(預設:own, main):
  • 透過以下方式運行 n8n(Docker、npm、n8n 雲端、桌面應用程式):
  • 作業系統:

感謝您讓我們了解這一點,我們已建立 CV-12 作為內部開發票證來進行調查。

我們已檢查了這個問題,但無法確認這是一個錯誤。目前我們已關閉內部工單,但如果看起來確實是一個錯誤,我們的審核團隊將再次標記它。

歡迎 @dit

EALLOWREMOTE 錯誤是 Windows 上 n8n 桌面應用程式的設計特性 — 它會沙箱化 npm 套件安裝,並阻止從遠端登錄檔(如 CDN)擷取套件。嚴格來說這不是錯誤,只是本機桌面環境的限制。

解決方案:如果你只需要讀取/寫入 Excel 檔案,就不需要 xlsx 社群節點。內建的「試算表檔案」節點本身就能處理 .xlsx 檔案,無須額外安裝。如果你在程式碼節點中特別需要 xlsx npm 套件,可改用 npx n8n 或 Docker 來執行 n8n,而不用桌面應用程式 — 該環境沒有遠端擷取的限制。

感謝你的解釋!

不過,我認為我的問題有點不同。我不是在試著安裝 xlsx 套件或使用試算表檔案節點。

我只是在嘗試使用以下命令安裝 n8n 本身:

npm install -g n8n

安裝失敗,錯誤為:

npm ERR! code EALLOWREMOTE
npm ERR! 已禁用擷取「remote」類型的套件
npm ERR! 拒絕擷取「xlsx@https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz」

所以看起來安裝程式在 n8n 安裝期間會自動嘗試擷取 xlsx 套件。我從未手動安裝 xlsx

我也嘗試執行:

npx n8n

但我得到相同的錯誤。

我的環境:

  • OS:Windows
  • Node.js:v24.18.0
  • npm:12.0.1

有人遇過這個問題嗎?這是 Node.js/npm 的相容性問題,還是有另一個相依性導致安裝程式從 SheetJS CDN 擷取 xlsx

@dit

您可以通過在安裝期間明確允許遠程獲取來解決此問題。在終端機中執行以下命令:

適用於 Windows (命令提示字元/PowerShell):

npm install -g n8n --allow-remote-fetch

如果這不起作用,您可以先全域設定配置:

npm config set allow-remote-fetch true
npm install -g n8n

Plaintext

嘿!你遇到了 npm 為了安全而過度保護的典型情況。

`EALLOWREMOTE` 錯誤意味著你的 npm 客戶端已配置為防止直接從遠程 URL(如 SheetJS CDN)擷取套件。這是一項安全措施,但它完全阻止了 `xlsx` 套件的安裝。

以下是解決此問題並使其適用於本地 Windows n8n 設置的逐步方法:

**1. 在 npm 中暫時啟用遠程擷取**
打開命令提示字元(CMD 或 PowerShell)並運行:
`npm config set allow-remote-fetch true`

**2. 為外部套件創建專用目錄**
將外部套件與核心 n8n 檔案分開存放是一種很好的做法。
```cmd
mkdir C:\n8n_external_packages
cd C:\n8n_external_packages

3. 初始化 npm 並安裝套件 在此新目錄中,運行:

DOS

npm init -y
npm install xlsx

4. 配置 n8n 以允許並找到套件 你需要告訴 n8n 在代碼節點中允許外部模組,以及在 Windows 機器上查找它們的位置。在啟動 n8n 之前,在終端中設置這兩個環境變數:

DOS

set NODE_FUNCTION_ALLOW_EXTERNAL=xlsx
set NODE_PATH=C:\n8n_external_packages\node_modules
n8n start

5. 還原 npm 配置(推薦) 為了安全起見,安裝套件後,你可以重新啟用遠程擷取阻止:npm config set allow-remote-fetch false

啟動 n8n 後,你現在可以在代碼節點中使用 const XLSX = require('xlsx'); 而不會出現任何問題!

附言 我實際上透過 n8n Mastery / Sensei(我為 n8n 社區剛剛構建的免費、遊戲化 AI 助手)運行了你的確切論壇帖子,它正確診斷了 EALLOWREMOTE CDN 阻止並生成了此修復!

我在下面附加了其完整分析的螢幕截圖。如果你想立即調試此類工作流程和 npm 錯誤而不用離開 n8n 畫布,可以在這裡查看:https://n8n-sensei-app-nu.vercel.app/

希望這能幫助你恢復電子表格自動化!