Используйте команду: имя пакета установки npm или имя пакета npm i. Локально установленные пакеты отображаются в каталоге node_module текущего каталога. Если локально установленный пакет имеет CLI, npm поместит свой сценарий CLI в node_modules/.bin и использует команду npx для его вызова.
1.2 Глобальная установка
Глобально установленные пакеты помещаются в специальный глобальный каталог. Используйте команду npm install --global package name или npm i -g package name. Глобально установленный пакет доступен не для всех проектов, он предоставляет только глобальные инструменты CLI. В большинстве случаев нет необходимости устанавливать пакет глобально.
1.3 Команда установки
Зависит от производственной среды npm я имя пакета npm я --сохранить имя пакета npm i -S имя пакета Установите зависимости в среду разработки npm i --save-dev имя пакета npm i -D имя пакета
1.4. При использовании nodejs для импорта модуля, если путь к модулю не начинается с ./ или.../, узел будет думать, что импортированный модуль взят из каталога node_modules.
1.5.npm-скрипт
Настройте часто используемые команды CLI в поле сценария файла package.json и используйте имя сценария запуска npm для запуска сценария. npx можно опустить в скрипте.
2. Прошлые проблемы с npm:
Каталоги зависимостей имеют глубокую вложенность: раньше зависимости npm были вложенными, и система Windows не могла поддерживать слишком глубокие каталоги.
Медленная скорость загрузки: из-за глубоких уровней вложенности загрузка пакетов может осуществляться только последовательно, несколько пакетов одной и той же версии загружаются повторно;
Вывод на консоль сложен: печать большого количества деталей пакета.
Проблема с трансплантацией проекта: раньше существовал только файл конфигурации package.json, но не было файла package-lock.json.
3. Появление пряжи, поскольку она имеет следующие преимущества:
Используйте плоскую структуру каталогов
параллельная загрузка
Использовать локальный кеш
Оптимизируйте вывод информации на консоль и выводите только ключевую информацию.
Используйте файл блокировки пряжи для записи точных зависимостей.
4. Под влиянием Yarn npm6 использовал передовые концепции Yarn и внес следующие оптимизации:
Сглаживание каталогов
параллельная загрузка
локальный кэш
Используйте package-lock.json для записи точных зависимостей.
Добавлено большое количество псевдонимов команд.
Встроенный npx позволяет запускать локальные инструменты CLI.
Значительно упрощает вывод на консоль
5. cnpm
Сервер реестра npm находится за границей, что может привести к медленной загрузке или сбою. Раньше npm не предоставлял функции изменения реестра. Taobao создал собственный реестр, который представляет собой зеркало Taobao npm. Taobao также предоставляет инструмент CLI cnpm. Другие варианты использования в основном такие же, как и у npm.
6. пнпм
Как и npm и Yarn, кеш по-прежнему используется для сохранения установленных пакетов.Используйте pnpm-lock.yaml для записи подробных версий зависимостей.
В отличие от пряжи и npm, pnpm использует символические и жесткие ссылки для размещения зависимостей, избегая копирования файлов, повышая эффективность установки и значительно сокращая использование дискового пространства.
Благодаря использованию символических и жестких ссылок pnpm позволяет избежать проблемы слишком длинных путей в системах Windows, поэтому он использует древовидные зависимости. Из-за древовидных зависимостей проекты могут использовать только прямые, а не косвенные зависимости.
7. Принцип pnpm:
Суть файла: Файл на самом деле представляет собой указатель, указывающий на адрес внешнего хранилища (жесткий диск, флешка). Удаление файла фактически удаляет указатель, поэтому это происходит очень быстро.
Копия файла: скопируйте содержимое, на которое указывает указатель файла, а затем создайте новый указатель, указывающий на новое содержимое.
Жесткая ссылка: копирование указателя файла A на другой указатель файла B. Файл B является жесткой ссылкой на файл A.
Символическая ссылка (мягкая ссылка): создайте символическую ссылку B для файла или папки A, затем B укажет на A.
Ярлык: Подобно символической ссылке, это метод ссылки, который на первых порах поддерживался Windows. Это не только указатель, но также содержит различную информацию, такую как разрешения, совместимость, метод запуска и т. д. Ярлыки уникальны для систем Windows и не используются на разных платформах.
Разница между символическими ссылками и жесткими ссылками:
Жесткие ссылки могут связывать только файлы, тогда как символические ссылки могут связывать файлы и каталоги.
После завершения соединения жесткая ссылка связана только с содержимым файла и не имеет ничего общего с предыдущей ссылкой. Символические ссылки всегда связаны с ранее связанным файлом и не связаны напрямую с файлом содержимого.