我是 node-red 和 docker 的新手。在我的實習中,我被要求將子流轉換為模塊(以便在創建的每個 node-RED 實體的調色板中)所以,我從一個小示例開始,展示如何將自定義節點添加為模塊遵循以下步驟(node-RED 安裝在 docker 容器中):
連接到 ec2 機器
通過執行命令 docker exec -it mynodered /bin/bash/ 進入容器內部
然后我按照本示例https://techeplanet.com/how-to-create-custom-node-in-node-red/ 中所示的步驟創建節點并安裝它。在那之后,我去“管理調色板”尋找最近安裝的模塊,但它不在那里......如果有人可以提供幫助,我將不勝感激。謝謝
uj5u.com熱心網友回復:
首先,在npmNode-RED 重新啟動之前,安裝在命令列上的節點不會顯示。
這樣做的問題是,在您的情況下,您在 docker 容器中創建了節點,在正常情況下,您在運行的容器中創建的任何檔案在重新啟動時都會丟失。這是因為容器不會持久化更改。
同樣在 docker 容器中, userDir 不是~/.node-redbut /data。
因此,當您重新啟動容器時,節點可能會丟失,并且它也不會安裝到userDir 中的node_modules目錄中,/data除非您/data得到了持久卷的支持。
如果你想在你的本地機器上創建一個節點,你可以通過使用 npm 安裝它然后重新啟動 Node-RED 的本地實體來選擇新節點來本地測驗它。
然后,您可以使用該npm pack命令創建一個 tgz 檔案,您可以通過 Palette Manager 將其上傳到遠程實體,以便在需要時在 Docker 容器中對其進行測驗。
要長期使用這個新節點,您有多種選擇:
- 使用合適的標簽將節點發布到公共 npm,并將其添加到 Node-RED 節點的公共串列中,如檔案中所述。這將允許任何人安裝節點。您應該只對您希望任何人都能夠使用的節點執行此操作
- 構建一個自定義 docker 容器,在構建程序中安裝您的節點。如何做到這一點的例子在這里
- 使用
settings.js指向私有 npm 存盤庫和目錄服務的自定義構建自定義 docker 容器,該服務將允許您托管自定義節點。一篇關于這個的博客文章在這里
其次,您所遵循的指南是用于構建 Node-RED 節點,而不是用于將子流轉換為節點。雖然可以從頭開始完全重新實作子流,但它可能需要重新創建在使用中的節點中完成的大量作業,但這并不是真正有效的方法。正在構建一個工具,該工具將自動將子流轉換為節點,但尚未準備好發布。
我建議您加入 Node-RED Slack 或Discourse論壇,以便在可用時收到通知。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/312808.html
