Są 2 różne sposoby rozwiązywania moduły: haste
jest modułowy system wykorzystywany przez reakcję natywne do pakowania (podobny do browserify lub WebPack do przeglądarki)
https://github.com/facebook/node-haste
System modułowy node
jest metoda używana wewnętrznie przez węzeł.
Co do tego, jak faktycznie różnią się: niestety haste
nie ma jeszcze obszernej dokumentacji. Zasadnicza różnica polega na tym, że haste
może oddzielić odwołania do pakietów (na przykład require('underscore')
) do pojedynczego modułu, podczas gdy node
będzie faktycznie używać innego modułu dla każdego podpakietu. Zasadniczo: z node
możesz otrzymać wiele wersji, powiedzmy, underscore
w jednym programie, natomiast z haste
tylko jedna wersja underscore
jest umieszczana w ostatecznym pakiecie.
Może to powodować subtelne różnice, jeśli w projekcie występuje wiele wersji modułu, chociaż widocznie haste
to becoming more compatible with existing node behavior.