Dostępny menedżer pakietów NPM 7.0

opublikowany wydanie menedżera pakietów NPM 7.0, zawarty w Node.js i używany do dystrybucji modułów w JavaScript. Repozytorium NPM obsługuje ponad 1.3 miliona pakietów, z których korzysta około 12 milionów programistów. Co miesiąc rejestruje się około 75 miliardów pobrań. NPM 7.0 było pierwszą znaczącą wersją powstałą później zakup NPM Inc przez GitHub. Nowa wersja zostanie dołączona do przyszłej wersji platformy Node.js 15, który ma nastąpić 20 października. Aby zainstalować NPM 7.0 bez czekania na nową wersję Node.js, możesz uruchomić polecenie „npm i -g npm@7”.

Klucz innowacje:

  • Obszary robocze (Przestrzenie robocze), umożliwiając agregację zależności z kilku pakietów w jeden pakiet w celu zainstalowania ich w jednym kroku.
  • Automatyczna instalacja zależności rówieśnicze (używane we wtyczkach w celu określenia podstawowych pakietów, z którymi bieżący pakiet ma współpracować, nawet jeśli nie jest w nim bezpośrednio używany). Zależności równorzędne są określone w pliku package.json w sekcji „peerDependency”. Wcześniej takie zależności były instalowane ręcznie przez programistów, ale NPM 7.0 implementuje algorytm zapewniający, że poprawnie zdefiniowana zależność równorzędna zostanie znaleziona na tym samym poziomie lub powyżej zależnego pakietu w drzewie node_modules.
  • Druga wersja formatu blokady (package-lock v2) i obsługa pliku blokady przędzy.lock. Nowy format pozwala na powtarzalne kompilacje i zawiera wszystko, co potrzebne do pełnego zbudowania drzewa pakietów. NPM może teraz używać plików przędzy.lock jako źródła metadanych pakietu i informacji o blokowaniach.
  • Przeprowadzono znaczącą refaktoryzację komponentów wewnętrznych, mającą na celu wydzielenie funkcjonalności w celu uproszczenia konserwacji i zwiększenia niezawodności. Przykładowo, kod służący do przeglądania i zarządzania drzewem node_modules został przeniesiony do osobnego modułu Arborist.
  • Przeszliśmy na korzystanie z pola package.exports, co uniemożliwia łączenie modułów wewnętrznych poprzez wywołanie require().
  • Pakiet został całkowicie przepisany np, który teraz używa polecenia „npm exec” do uruchamiania plików wykonywalnych z pakietów.
  • Dane wyjściowe polecenia „npm audyt” zostały znacząco zmienione, zarówno w przypadku danych wyjściowych w formacie czytelnym dla człowieka, jak i po wybraniu trybu „--json”.

Źródło: opennet.ru

Dodaj komentarz