Расширенный учебник Nodejs, обходные пути Xiaobai! ! !
советы и рекомендации по npm
Обязательное условие: убедитесь, что у вас установлен node.js.
Лучшие практики для npm
npm install
— самая распространенная команда npm cli, но в ней намного больше! Далее вы узнаете, как npm может помочь вам на протяжении всего жизненного цикла вашего приложения — от создания проекта до разработки и развертывания всего жизненного цикла.
Познакомьтесь с нпм
Прежде чем мы начнем, давайте взглянем на некоторые команды, чтобы узнать, какая версия npm запущена.
npm version
Чтобы получить версию, которую использует текущий npm cli, вы можете выполнить командуnpm version
, эта команда может вернуть много информации помимо версии - версию текущего пакета, используемую вами версию node.js, версию openSSL или V8, взяв за пример мою локально установленную ноду, результаты являются следующими:
npm help
Как и большинство инструментов командной строки, npm также имеет встроенную вспомогательную функцию, которая может получить описание и краткий обзор команды.Например, мы хотим увидеть, что делает тестовая команда npm, выполнитьnpm help test
1 использованиеnpm init
Создать новый проект
использоватьnpm init
команды, которые помогут вам интерактивно создаватьpackage.json
файл, выскочит проблема с названием и описанием проекта, есть быстрый обходной путьnpm init --yes
(или сокращенноnpm init -y
), тогда никаких проблем не возникнет, просто создайте его с конфигурацией по умолчаниюpackage.json
, вы можете настроить эти конфигурации по умолчанию, используя следующие команды
npm config set init.author.name YOUR_NAME
npm config set init.author.email YOUE_EMAIL
2 Найдите правильный пакет npm
Найти правильный пакет npm может быть довольно сложно — есть тысячи пакетов на выбор, поэтому выбор правильного пакета npm может быть проблемой, однако мы можем выбрать модуль, который поможет нам отправлять HTTP-запросы. Существует веб-сайт, который может помочь нам просто выполнить эту задачу, этоnpms.io, он покажет качество, популярность и ремонтопригодность пакета, которые всесторонне рассчитываются на основе того, имеет ли модуль обновленные зависимости, есть ли быстрая настройка, выполнено ли тестовое покрытие и есть ли последние записи о отправке.
3 Проверьте пакеты npm
Как только мы нашли наш модуль (в нашем случае модуль запросов), мы должны взглянуть на документацию, посмотреть на проблемы, чтобы получить лучшее представление о пакетах, которые мы собираемся внедрить в приложение. не забывайте, чем больше пакетов npm вы используете Чем больше, тем выше риск вашего проекта
Если вы хотите открыть домашнюю страницу этого модуля в кли, выполните
npm home request
Открыть вопросы модуля
npm bugs request
Или, если вы просто хотите просмотреть git-репозиторий модуля, выполните следующую команду
npm repo request
4 Сохранить зависимости
npm использует semver для управления
Так называемый SEMVER относится к семантическому управлению версиями, и его правила изложены следующим образом: Формат версии: основной номер версии. дополнительный номер версии. номер редакции. Правила увеличения номера версии следующие:
- Номер основной версии: новая настройка архитектуры, несовместимая со старыми версиями.
- Второстепенный номер версии: новые функции, совместимые со старыми версиями
- Номер редакции: исправление ошибок, совместимость со старыми версиями.
Как только вы решите добавить сторонний пакет в свой проект, вам необходимо установить и сохранить его. Наиболее распространенная команда:npm install some-package
, если вы хотите автоматически добавлять информацию о пакете вpackage.json
файл, вам нужно выполнитьnpm install some-package --save
По умолчанию npm сохранит ваш пакет с префиксом '^' Конкретные правила установки следующие:
^version
兼容某个版本
版本号中最左边的非0数字的右侧可以任意
如果缺少某个版本号,则这个版本号的位置可以任意
如:^1.1.2 ,表示>=1.1.2<2.0.0,
可以是1.1.2,1.1.3,.....,1.1.n,1.2.n,.....,1.n.n
如:^0.2.3 ,表示>=0.2.3 <0.3.0,
可以是0.2.3,0.2.4,.....,0.2.n
如:^0.0,表示 >=0.0.0 <0.1.0,
可以是0.0.0,0.0.1,.....,0.0.n
Это также означает, что при следующем выполненииnpm install
Когда, даже если основная версия не изменилась, минорная версия или редакция изменились, ваш модуль будет переустановлен, вы можете выполнить следующую команду, чтобы изменить правила версии пакета установкиnpm config set save-prefix='~'
Правила установки этого префикса пакета следующие:
~version
大概匹配某个版本
如果minor版本号指定了,那么minor版本号不变,而patch版本号任意
如果minor和patch版本号未指定,那么minor和patch版本号任意
如:~1.1.2,表示>=1.1.2 <1.2.0,可以是1.1.2,1.1.3,.....,1.1.n
如:~1.1,表示>=1.1.0 <1.2.0
如:~1,表示>=1.0.0<2.0.0,
可以是1.0.0,1.0.1,.....,1.1.n,1.2.n,.....,1.n.n
Если вы хотите сохранить указанный номер версии, выполнитеnpm config set save-exact true
5 Блокировка зависимостей
Как упоминалось выше, npm использует семантический номер версии semver для управления, что упрощает получение и обновление зависимостей в процессе разработки, но свободный контроль номера версии также вносит неопределенность.
- npm рекомендует использовать версию semver, но некоторые пакеты не соответствуют semver;
- package.json может использовать точные номера версий для управления вашими напрямую зависимыми пакетами, но сторонние зависимые пакеты не могут управляться;
- Версия пакета, полученная на этапе разработки, может не совпадать с версией, полученной при последующем развертывании.Более неконтролируемым является то, что сторонний пакет, от которого вы зависите, также имеет такую ситуацию, что приведет к потенциальным онлайн-рискам.
Можно использоватьnpm shrinkwrap
Чтобы решить эту проблему, эта команда создаст файл npm-shrinkwrap.json, который содержит не только указанную версию пакета, установленного на вашем компьютере, но и указанную версию зависимых пакетов пакета, как только в корневом каталоге проекта будет этот файл под, вы выполняетеnpm install
команда восстановит идентичное дерево зависимостей
6 Проверьте, обновляются ли зависимости проекта
npm имеет встроенную команду служебного методаnpm outdated
Вы можете проверить устаревшие пакеты, запустив `npm outdated' в вашем проекте, но ручное выполнение команды проверки обновлений очень раздражает.Существует инструмент, который может автоматически выполнять проверку обновлений пакетов.Greenkeeper, Заинтересованная детская обувь может перейти по ссылке, чтобы узнать больше.
7 комплект для разработки
При локальной разработке пакетов npm мы можем использоватьnpm link
команду, свяжите модуль npm с соответствующим работающим проектом и легко отлаживайте и тестируйте модуль.
Приведите пример, чтобы объяснить, что это значит и как его использовать
Теперь у нас есть два проекта, npm-link-module и npm-link-test, где npm-link-module — это пакет npm, который мы хотим разработать, а npm-link-test используется для тестирования разработанного нами пакета.
Выполнить в модуле npm-link-modulenpm init -y
Создайте файл конфигурации пакета по умолчанию package.json, создайте новый index.js в каталоге следующим образом, напишите простую функцию преобразования даты
function formateTime(date) {
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDay();
month = month < 10 ? '0' + month : month;
day = day < 10 ? '0' + day : day;
return year + '-' + month + '-' + day;
}
module.exports = formateTime
затем выполнитьnpm link
, После выполнения команды npm-link-module будет связан с глобальным в соответствии с конфигурацией в package.json, путь{prefix}/lib/node_modules/<package>
, это описание в официальной документации, мы можем использовать команду npm config get prefix, чтобы получить значение префикса (я использую окна, и фактически связанный с ним путь:{prefix}/node_modules/<package>
)
Затем введите npm-link-test и выполнитеnpm init -y
Создайте файл пакета, затем выполнитеnpm link npm-link-module
Вы можете видеть, что ярлык для npm-link-module создается в каталоге node_modules этого проекта.
npm-link-module
этот модуль
Мы создаем новый файл index.js в каталоге npm-link-test, содержимое которого следующее
let formateTime = require('npm-link-module');
let date = new Date();
console.log(formateTime(date));
Затем выполните node index.js, вы можете видеть, что командная строка распечатала результат выполнения функции.
Затем мы изменяем функцию даты файла index.js в npm-link-module, и возвращаемый результат изменяется, чтобы вернуть дату в формате косой черты.
return year + '/' + month + '/' + day;
Вернитесь в каталог npm-link-test, чтобы выполнить index.js, вы увидите, что возвращенный результат стал датой с косой чертой.
Смотрите, все изменения в npm-link-module будут напрямую сопоставлены с npm-link-test/node_modules/npm-link-module.
Чтобы объяснить, этот расширенный учебник по nodejs планирует написать около 10 статей, и теперь у меня есть общая структура в моем сердце, поэтому я готов писать и разбираться, а каталог учебника будет указан после написания.
Ниже приведена моя личная общедоступная учетная запись внешнего интерфейса. Вы можете отсканировать код и следить за ним, а также получать обновленную информацию об учебнике как можно скорее.