Niedawno ogłoszono wydanie nowej wersji menedżera pakietów NPM 7.0 , dołączonego do dystrybucji Node.js i służącego do dystrybucji modułów JavaScript .
Nowa wersja NPM 7.0 zawiera Workspaces (zestaw funkcji w npm CLI), który umożliwia zarządzanie wieloma pakietami i instalację kilku pakietów w jednym kroku.
Miłego wtorkowego wydania! Dzisiejszy dzień to ważny kamień milowy dla zespołu npm CLI: oficjalnie wydaliśmy [email protected] Jeśli śledzisz nas od roku, a może i dłużej, wiesz, że ciężko pracowaliśmy nad udostępnieniem tej wersji.
Automatyczna instalacja zależności równorzędnych jest również dostępna (służy do określania pakietów bazowych, z którymi ma współpracować bieżący pakiet, nawet jeśli nie jest w nim bezpośrednio używany).
Odpowiednie zależności między urządzeniami równorzędnymi dla pakietów są teraz wykrywane automatycznie, ponieważ wcześniej programiści musieli instalować je ręcznie.
Zależności równorzędne są określone w pliku package.json w sekcji „peerDependencies”. NPM 7.0 implementuje algorytm, który zapewnia, że poprawnie zdefiniowana zależność równorzędna zostanie znaleziona na poziomie pakietu zależnego lub powyżej niego w drzewie node_modules.
Nasze skupienie i determinacja przekroczyły ostatnie 3 miesiące, gdy podnieśliśmy cotygodniowe tempo wydawania i zaczęliśmy zajmować się błędami / komentarzami w naszych oknach beta / rc.
Jak wspomniałem wcześniej, wciąż mamy wiele do zrobienia, ale uważamy, że CLI jest dziś w bardzo stabilnym miejscu i jest gotowe do użycia. npm v7 będzie dostarczany z Node.js v15 (PR, aby wylądować to dzieło zostanie wkrótce otwarte) i nie możemy się doczekać kontynuacji tempa zmian / ulepszeń, zbliżając się do ostatniego kwartału roku.
Ponadto zaprezentowano drugą wersję formatu blokady (package-lock v2) i obsługę pliku blokady yarn.lock.
Format blokowania pakietów został poprawiony i najwyraźniej zawiera wszystko, czego npm potrzebuje do pełnego utworzenia drzewa pakietów. Do tej pory pliki yarn.lock były najwyraźniej ignorowane, ponieważ od wersji 7 klient npm może również odczytywać z nich metadane pakietów i informacje o rozdzielczości.
Nowy format pozwala na powtarzalne kompilacje i zawiera wszystko, co potrzebne do zbudowania kompletnego drzewa pakietów.
Ponadto wspomina się, że pomimo ogromnego przeglądu wewnętrznych elementów npm, zespół pracował niestrudzenie, aby zapewnić minimalne zakłócenia w większości przepływów pracy.
Przeprowadzono gruntowną refaktoryzację wewnętrznych komponentów w celu oddzielenia funkcjonalności, aby uprościć konserwację i zwiększyć niezawodność.
Na przykład kod do inspekcji i zarządzania drzewem node_modules został przeniesiony do oddzielnego modułu Arborist.
Przejście do korzystania z pola package.exports, co uniemożliwia podłączenie modułów wewnętrznych poprzez wywołanie require ().
Całkowicie przepisany pakiet npx, który teraz używa polecenia „npm exec” do uruchamiania plików wykonywalnych z pakietów.
Dane wyjściowe polecenia „npm audit” uległy znacznym zmianom, zarówno po wygenerowaniu w formacie czytelnym dla człowieka, jak i po wybraniu trybu „–json”.
Rozładowanie
Nowa wersja jest teraz dostępna dla ogółu społeczeństwa i można szybko zaktualizować poprzednią wersję lub całkowicie zainstalować nową wersję.
Na koniec warto wiedzieć, że repozytorium NPM obsługuje ponad 1,3 miliona pakietów, z których korzysta około 12 milionów programistów. Miesięcznie rejestrowanych jest około 75 miliardów pobrań. NPM 7.0 było pierwszym znaczącym wydaniem utworzonym po zakupie NPM Inc przez GitHub.
Nowa wersja zostanie wydana wraz z przyszłą wersją platformy Node.js, wersją 15, zaplanowaną na 20 października. Aby zainstalować NPM 7.0 bez czekania na nową wersję Node.js, możesz uruchomić następujące polecenie w terminalu:
npm i -g npm@7
Jeśli chcesz dowiedzieć się więcej o nowej wersji, możesz sprawdzić szczegóły w oficjalnym ogłoszeniu.