Mam bibliotekę, która może być używana zarówno z węzłem node.js, jak i przeglądarką. Używam CommonJS, a następnie publikuję dla wersji internetowej za pomocą pakietu internetowego. Mój kod wygląda następująco:Jak wykluczyć ścieżkę kodu podczas pakowania w pakiecie webpack/browserify?
// For browsers use XHR adapter
if (typeof window !== 'undefined') {
// This adapter uses browser's XMLHttpRequest
require('./adapters/xhr');
}
// For node use HTTP adapter
else if (typeof process !== 'undefined') {
// This adapter uses node's `http`
require('./adapters/http');
}
Problem mam napotykając jest to, że gdy uruchamiam WebPACK (browserify zrobi to samo) wygenerowany wyjściowy zawiera http
wraz ze wszystkimi jego zależnościami. Powoduje to powstanie OGROMNEGO pliku, który nie jest optymalny dla wydajności przeglądarki.
Moje pytanie brzmi: jak mogę wykluczyć ścieżkę kodu węzła podczas uruchamiania modułu pakującego? Rozwiązałem to tymczasowo, używając zewnętrznych elementów WebPacka i po prostu wróciłem niezdefiniowany, włączając w to './adapters/http'
. Nie rozwiązuje to przypadku użycia, w którym inni programiści zależą od mojej biblioteki za pomocą CommonJS. Ich kompilacja zakończy się tym samym problemem, chyba że użyje podobnej konfiguracji exclude.
Sprawdziłem, jak używać envify, zastanawiając się, czy istnieje inne/lepsze rozwiązanie.
Dzięki!