我試圖實現與碼頭工人開發人員的工作流程,以發展下線的能力(如,不必運行npm install
當您對具有不同的依賴性分支機構之間進行切換)發展的NodeJS離線搬運工
的最直觀的方法是將依賴關係存儲在源代碼管理中。這有它自己的問題,尤其是在使用編譯依賴關係的模塊時。我已經試過幾乎所有我能想到的,發現:
npm pack
荷蘭國際集團我的項目的依賴,在源存儲但這並不存儲我的依賴的依賴- 存儲源node_modules,複製此到容器運行
npm rebuild
但doesn't actually trigger a rebuild - 運行
npm install --no-registry
因此T觸發重建,但不嘗試調用出來,但它實際上調用了公衆註冊表反正 - 其他解決方案我見過像Node-PAC似乎拋棄
- npmbox看起來最有前途,但它要求將其安裝在全局目標上,除非我們開始在生產環境中部署容器,否則它將在可構建但不能生產的容器中工作。
這是徒勞的努力嗎?缺少網絡訪問非常罕見,只有在安裝新模塊或在具有不同依賴關係的修訂之間移動時才需要。
雖然我不涉及需求(我使用Canonical的Juju Local容器實現爲本地開發容器運行),這裏有一個想法:自node_modules是一個臨時的gitignored文件夾,爲什麼不創建任何分支的所有依賴關係的集合,並將它們存儲在項目的package.json文件的devDependencies中。這樣,所有node_modules都可用於任何正在切換到的分支。 *警告:如果您在分支機構中擁有並行版本的NPM模塊,這將不起作用* – SylonZero
這是我將來預見的問題的一部分:在這種假設情況下,可能的情況是依賴項的版本會在關閉修訂版。 – BrDaHa