這可能有點複雜,但我會盡我所能。我有一系列使用Browserify的API模塊,其中一些還調用其他模塊。它們幾乎相互交織,這會使更新變得困難。例如,假設我有五個模塊:A,B,C,D和E. A需要B和C,B需要C,D和E.如果我需要A的一些更新正在改變,我可以對它進行版本化,但是我需要更新B和C中的require語句。由於B現在使用了不同版本的A,我還需要版本B,這意味着更改C,D和E中的require語句。因此,一個模塊中的單個更改意味着我必須恢復其他所有內容。更新一個CommonJS模塊,而不必觸摸它所需的每個模塊
我應該注意,主要原因是我必須保留舊版本。這些都是小型的微型網站,一個網站可能會用A - E構建,而下一個網站可能會用A' - E'構建,但我仍然需要能夠獨立構建。儘管對A'的更改可能對它暴露的API沒有任何影響,但我不希望返回並重新測試每個修改過的單個項目。
我想過要有一個單獨的每個項目文件可能需要,然後它需要該項目的所有版本化模塊,但這是一個循環依賴項。
如果重要,我使用Gulp和Browserify來構建最終的JS文件。
我想過使用回退,但不同的版本不一定*棄用較舊的版本。同樣的原因,它並不總是一個API的變化。例如,Logger可能需要爲某些項目添加額外的日誌記錄源,或者Data模塊可能需要以不同方式組織。外部API沒有變化,在版本化意義上,它不是「更新」或「更好」,它只是不同而已。 – mherzig
我認爲一個日誌模塊不應該依賴它的來源或目標。它可以提供一個可配置的界面,而應用程序的主要條目(每個項目都不同)可以提供日誌記錄源或目標列表。 –