Node js использование npm: различия между версиями
imported>Vix Нет описания правки |
imported>Vix |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
'''Документация по утилите NPM в Node Js''' | '''Документация по утилите NPM в Node Js''' | ||
<hr> | |||
==Установка необходимых модулей npm в собственный проект== | ==Установка необходимых модулей npm в собственный проект== | ||
Строка 7: | Строка 8: | ||
./node_modules | ./node_modules | ||
с необходимыми проекту модулями. | с необходимыми проекту модулями. | ||
==11 простых npm трюков, которые вас удивят== | |||
''1. Открыть домашнюю страницу пакета'' | |||
Запустите: | |||
npm home $package | |||
Выполнение команды home откроет домашнюю страницу того пакета, напротив которого вы ее запустили. Запуск напротив пакета lodash приведет вас на сайт Lodash. Для запуска этой команды нет необходимости иметь установленный пакет глобально на вашей машине или внутри текущего проекта. | |||
''2. Открыть GitHub репозиторий пакета'' | |||
Запустите: | |||
npm repo $package | |||
Аналогично home, команда repo откроет GitHub репозиторий того пакета, напротив которого вы ее запустили. Запуск напротив пакета express приведет вас на официальный репозиторий Express. Так же как и для home, вам не нужно иметь установленный пакет. | |||
''3. Проверить пакет на устаревшие зависимости'' | |||
Запустите: | |||
npm outdated | |||
Вы можете выполнить команду outdated внутри проекта, и она проверит npm реестр, чтобы узнать, устарел ли какой-либо из ваших пакетов. В командную строку будет выведен список: текущей версии, требуемой версии и последней версии. | |||
''4. Проверить пакеты, необъявленные в package.json'' | |||
Запустите: | |||
npm prune | |||
При выполнении prune, npm CLI пройдет через ваш package.json и сравнит его с директорией /node_modules вашего проекта. Она выведет список модулей, которых нет в вашем package.json. | |||
Затем, команда npm prune удаляет эти пакеты и удалит любые не добавленные в package.json вручную или установленные при помощи npm install без — save флага пакеты. | |||
''5. Закрепить версии зависимостей'' | |||
Запустите: | |||
npm shrinkwrap | |||
При использовании shrinkwrap, в вашем проекте генерируется файл npm-shrinkwrap.json. Это позволяет закрепить зависимости вашего проекта на определенной версии, которую вы сейчас используете внутри директории node_modules. Когда есть npm-shrinkwrap.json и вы запускаете npm install, то произойдет переопределение указанных зависимостей и любых semver диапазонов в package.json. | |||
Если вам нужно точное соответствие между package.json, npm-shrinkwrap.json и node_modules в вашем проекте, вы должны рассмотреть возможность использования npm-shrinkwrap. | |||
''6. Использовать npm v3 вместе с Node.js v4 LTS'' | |||
Запустите: | |||
npm install -g npm@3 | |||
Установка npm@3 глобально при помощи npm обновит ваш npm v2 до v3, также при помощи релиза npm v2 LTS поставится релиз Node.js v4 LTS (“Argon”). Установка последней стабильной версии npm v3 произойдет внутри запущенной v4 LTS. | |||
''7. Разрешить npm install -g без sudo'' | |||
Запустите: | |||
npm config set prefix $dir | |||
После выполнения команды, где $dir - это директория, которую вы указываете, чтобы npm устанавливал туда свои глобальные модули, вам больше не нужно указывать sudo для установки модулей глобально. Директория, которую вы указываете в команде, становится вашей глобальной bin директорией. | |||
С одной оговоркой: вы должны убедиться, что вы настроили пользовательские права на доступ для этой директории с помощью chown -R $USER $dir и добавили $dir/bin в PATH. | |||
''8. Изменить префикс сохранения по умолчанию для всех ваших проектов'' | |||
Запустите: | |||
npm config set save-prefix ~ | |||
Когда идет установка новых пакетов с —save или —save-dev флагами, тильда (~) более консервативна, чем каретка (^) по умолчанию в npm. Тильда закрепляет зависимость в минорной версии, позволяя патч релизам быть установленными при помощи npm update. Каретка закрепляет зависимости в мажорной версии, позволяя минорным релизам быть установленными с помощью npm update. | |||
''9. Отделить devDepencies вашего проекта для боевого окружения'' | |||
Когда проект готов к релизу, убедитесь, что вы устанавливаете пакеты, указав флаг —production. Флаг —production установит ваши dependencies, игнорируя devDependencies. Это гарантирует, что инструменты и пакеты для разработки не попадут на боевое окружение. | |||
Кроме того, вы можете установить в переменную окружения NODE_ENV значение production, чтобы гарантировать, что devDependecies вашего проекта никогда не установятся. | |||
''10. Будьте осторожны, когда используете .npmignore'' | |||
Если вы не использовали .npmignore, то по умолчанию применится .gitignore с несколькими дополнительными значениями по умолчанию. | |||
Многие не понимают, что после добавления файла .npmignore в ваш проект, .gitignore правила (по иронии судьбы) игнорируется. В результате, вам необходимо проверять два ignore файла на идентичность, чтобы предотвратить конфиденциальные утечки при публикации. | |||
''11. Автоматизировать npm init со значениями по умолчанию'' | |||
Когда вы запускаете npm init в новом проекте, вы можете пройти и установить элементы вашего package.json. Если вы хотите установить значения по умолчанию, которые npm init будет всегда использовать, вы можете использовать команду сonfig set, с некоторыми дополнительными аргументами: | |||
npm config set init.author.name $name | |||
npm config set init.author.email $email | |||
Если вместо этого вы хотите полностью настроить ваш init скрипт, вы можете указать на свой init скрипт по умолчанию, запустив | |||
npm config set init-module ~/.npm-init.js | |||
Вот пример скрипта, который запрашивает персональные настройки и создает GitHub репозиторий, если вы захотите. Убедитесь, что вы измените имя GitHub пользователя по умолчанию (YOUR_GITHUB_USERNAME) в качестве запасного варианта для переменной окружения с именем GitHub пользователя. | |||
Текущая версия от 02:00, 6 сентября 2018
Документация по утилите NPM в Node Js
Установка необходимых модулей npm в собственный проект
В папке проекта даем команду:
npm init
Заполняем все необходимые поля. После этого установка npm внутри проекта создаст папаку:
./node_modules
с необходимыми проекту модулями.
11 простых npm трюков, которые вас удивят
1. Открыть домашнюю страницу пакета
Запустите:
npm home $package
Выполнение команды home откроет домашнюю страницу того пакета, напротив которого вы ее запустили. Запуск напротив пакета lodash приведет вас на сайт Lodash. Для запуска этой команды нет необходимости иметь установленный пакет глобально на вашей машине или внутри текущего проекта.
2. Открыть GitHub репозиторий пакета
Запустите:
npm repo $package
Аналогично home, команда repo откроет GitHub репозиторий того пакета, напротив которого вы ее запустили. Запуск напротив пакета express приведет вас на официальный репозиторий Express. Так же как и для home, вам не нужно иметь установленный пакет.
3. Проверить пакет на устаревшие зависимости
Запустите:
npm outdated
Вы можете выполнить команду outdated внутри проекта, и она проверит npm реестр, чтобы узнать, устарел ли какой-либо из ваших пакетов. В командную строку будет выведен список: текущей версии, требуемой версии и последней версии.
4. Проверить пакеты, необъявленные в package.json
Запустите:
npm prune
При выполнении prune, npm CLI пройдет через ваш package.json и сравнит его с директорией /node_modules вашего проекта. Она выведет список модулей, которых нет в вашем package.json.
Затем, команда npm prune удаляет эти пакеты и удалит любые не добавленные в package.json вручную или установленные при помощи npm install без — save флага пакеты.
5. Закрепить версии зависимостей
Запустите:
npm shrinkwrap
При использовании shrinkwrap, в вашем проекте генерируется файл npm-shrinkwrap.json. Это позволяет закрепить зависимости вашего проекта на определенной версии, которую вы сейчас используете внутри директории node_modules. Когда есть npm-shrinkwrap.json и вы запускаете npm install, то произойдет переопределение указанных зависимостей и любых semver диапазонов в package.json.
Если вам нужно точное соответствие между package.json, npm-shrinkwrap.json и node_modules в вашем проекте, вы должны рассмотреть возможность использования npm-shrinkwrap.
6. Использовать npm v3 вместе с Node.js v4 LTS
Запустите:
npm install -g npm@3
Установка npm@3 глобально при помощи npm обновит ваш npm v2 до v3, также при помощи релиза npm v2 LTS поставится релиз Node.js v4 LTS (“Argon”). Установка последней стабильной версии npm v3 произойдет внутри запущенной v4 LTS.
7. Разрешить npm install -g без sudo
Запустите:
npm config set prefix $dir
После выполнения команды, где $dir - это директория, которую вы указываете, чтобы npm устанавливал туда свои глобальные модули, вам больше не нужно указывать sudo для установки модулей глобально. Директория, которую вы указываете в команде, становится вашей глобальной bin директорией.
С одной оговоркой: вы должны убедиться, что вы настроили пользовательские права на доступ для этой директории с помощью chown -R $USER $dir и добавили $dir/bin в PATH.
8. Изменить префикс сохранения по умолчанию для всех ваших проектов
Запустите:
npm config set save-prefix ~
Когда идет установка новых пакетов с —save или —save-dev флагами, тильда (~) более консервативна, чем каретка (^) по умолчанию в npm. Тильда закрепляет зависимость в минорной версии, позволяя патч релизам быть установленными при помощи npm update. Каретка закрепляет зависимости в мажорной версии, позволяя минорным релизам быть установленными с помощью npm update.
9. Отделить devDepencies вашего проекта для боевого окружения
Когда проект готов к релизу, убедитесь, что вы устанавливаете пакеты, указав флаг —production. Флаг —production установит ваши dependencies, игнорируя devDependencies. Это гарантирует, что инструменты и пакеты для разработки не попадут на боевое окружение.
Кроме того, вы можете установить в переменную окружения NODE_ENV значение production, чтобы гарантировать, что devDependecies вашего проекта никогда не установятся.
10. Будьте осторожны, когда используете .npmignore
Если вы не использовали .npmignore, то по умолчанию применится .gitignore с несколькими дополнительными значениями по умолчанию.
Многие не понимают, что после добавления файла .npmignore в ваш проект, .gitignore правила (по иронии судьбы) игнорируется. В результате, вам необходимо проверять два ignore файла на идентичность, чтобы предотвратить конфиденциальные утечки при публикации.
11. Автоматизировать npm init со значениями по умолчанию
Когда вы запускаете npm init в новом проекте, вы можете пройти и установить элементы вашего package.json. Если вы хотите установить значения по умолчанию, которые npm init будет всегда использовать, вы можете использовать команду сonfig set, с некоторыми дополнительными аргументами:
npm config set init.author.name $name npm config set init.author.email $email
Если вместо этого вы хотите полностью настроить ваш init скрипт, вы можете указать на свой init скрипт по умолчанию, запустив
npm config set init-module ~/.npm-init.js
Вот пример скрипта, который запрашивает персональные настройки и создает GitHub репозиторий, если вы захотите. Убедитесь, что вы измените имя GitHub пользователя по умолчанию (YOUR_GITHUB_USERNAME) в качестве запасного варианта для переменной окружения с именем GitHub пользователя.
ИСТОЧНИКИ: