Там шутка, так сказать: «Старик любит есть грецкие орехи. Я купил два фунта с моей женой вчера. Когда старик был молодым, она была сломана, улыбнулась и сказала мне: ты все еще с молотом Увидимся, чтобы использовать вашу руку. Мой рот, курил, приходит: люди и животные - это разница в том, что люди будут использовать инструменты. ... ». Откройте этот специальный сценарий, это предложение все еще очень разумно; в конце концов, из древнего периода Стоун или раньше, теперь, какой здравый смысл, знания, которые они узнали, знания, которые они узнали .... Можно сказать, что различия между людьми (кроме уровня гения), только преимуществами и недостатками использования инструмента. При использовании инструментов многие люди имеют большую степень пребывания на уровне использования. Если у вас нет проблем, это почти надежно; это не проблема, но, возможно, потому что нет тщательного понимания, оно отсутствует Объект. У меня есть воображение, есть много лучшего, так к сожалению.
Честно говоря, когда я работал на фронт-конце, давно мне не хватало достаточных знаний о НПМ, что заставило меня чувствовать себя «слишком поздно» для многих его информации; в этой статье я смогу объективно указать соответствующие функции NPM и пряжи используются для отображения различий между двумя; в то же время «общий список команд» перечислены в виде сравнения для простого использования в качестве ссылки (будет обновляться для улучшения); я хотел бы Возьмите эту возможность еще раз пропасть классическую поговорку:«Если рабочий хочет хорошо работать, он должен сначала наточить свои инструменты», чтобы поделиться с вами.
Что такое Npm, пряжа
Что такое нпм?
npm
который:npm package manager , Это способ повторного использования кода от других разработчиков, а также способ поделиться кодом с другими и легко управлять различными версиями кода.npm
Начал как управляющий узел пакета, поэтому вы найдете много модулей, доступных на стороне сервера. Есть также несколько команд дополнения пакета для вас, чтобы использовать в командной строке. Вы также найдете пакеты, которые можно использовать на переднем конце.
npm
Состоит из трех отдельных частей: веб-сайта, реестра и интерфейса командной строки. Веб-сайт — это основной инструмент для пользователей, позволяющий находить пакеты, реестр — это большая база данных с информацией о пакетах, а CLI — это то, как разработчики публикуют свои пакеты в реестре или загружают пакеты, которые они хотят установить. Подробнее см.what-is-npm.
Что такое пряжа?
Yarn
Это менеджер пакетов для вашего кода, с помощью которого вы можете использовать код разработчиков со всего мира или делиться своим собственным кодом. Yarn делает это быстро, безопасно и надежно, так что вам не о чем беспокоиться. пройти черезYarn
, вы можете использовать решения других разработчиков для решения различных проблем, чтобы упростить собственный процесс разработки. Если вы столкнетесь с проблемами во время использования, вы можете сообщить о них или предложить решения. Пряжа обновится, чтобы синхронизироваться, как только проблема будет устранена.
Yarn
— это новый инструмент управления пакетами JavaScript, разработанный Facebook, Google, Exponent и Tilde. Он не пытается полностью заменить npm. Yarn также является новым клиентом CLI, который извлекает модули из реестра npm. Порядок регистрации не изменится — вы по-прежнему сможете получать и публиковать пакеты как обычно. Он существует для решения проблемы, которую использует командаnpm
Столкнулись с небольшими проблемами. Конечно,Node
Версии постоянно меняются, а сам Npm активно обновляется.
Об установке/обновлении
Как установить/обновить Npm
Как установить нпм
npm
Начинал как менеджер пакетов Node, поэтому его установка связана с Node.js. Что касается того, как установить Node.js, официальный Npm, вInstalling Node.js and updating npmобъяснил. При попытке обновить Node.js на разных платформах ранее я также сталкивался с различными проблемами, некоторые из которых находятся вОбновление/установка NodeJsВ статье сделана запись, после долгого метания сделанный вывод согласуется с официальным сайтом:
Если вы используете OS X или Windows, лучший способ установить Node.js: используйтеСтраница загрузки Node.jsодин из установщиков в . (Микропримечание автора: если я пользователь из материкового Китая, перейдите наЗеркало Taobao Node.jsскачать, будет самый быстрый способ).
Как обновить нпм
- npm установить npm@latest -g (npm установить npm -g)
- Обновить (перезагрузить) Node.js
Как установить пряжу
Как установитьYarn
Официальный представитель пряжи дал очень подробное описание, см. подробностиInstall Yarn; охватывает MacOs, Windows, Linux и другие платформы, а также предоставляет некоторые альтернативные методы установки, например, черезnpm
установить:
npm install --global yarn
Конечно,Yarn
официальный вАльтернативный способ укладки пряжиЯсно, что:
Как правило, не рекомендуется проходить
npm
УстановитьYarn
, при установке Yarn с менеджером пакетов на базе Node пакет не подписывается, а только через базовыйSHA1
Хэш однозначно проверяется на целостность. Это угроза безопасности при установке приложений системного уровня. По этим причинам настоятельно рекомендуется устанавливать Yarn, используя метод, наиболее подходящий для вашей операционной системы.
Но в реальной эксплуатации это один из самых удобных способов, и проблем я пока не встречал, конечно, лучше всего следовать официально рекомендованному способу, если вы пользуетесь и знакомы с операционной системой Mac, также очень легко установить Yarn рекомендованным способом.brew install yarn
(примечание автора).
Как обновить пряжу
Чтобы обновить Yarn, вы можете использовать соответствующие команды во время установки; если это операционная система Mac, используйтеbrew
Установите, так что это обновлено:
brew upgrade yarn
еслиYarn
Если он установлен через пакет Debian/Ubuntu, вы можете выполнить следующую команду для обновления:
sudo apt-get update && sudo apt-get install yarn
также можно использоватьyarn
себя, чтобы обновить себя:
yarn global add yarn
Если интересно узнать больше, как обновитьyarn
метод см.:yarn self-update should update using the same installation method originally used.
Сравнение общих команд между npm и yarn
дифференцированная команда
Npm | Yarn | Описание функции |
---|---|---|
npm install(npm i) | yarn install(yarn) | Установите все зависимости согласно package.json |
npm i --save [пакет] | yarn add [package] | добавить зависимости |
npm i --save-dev [пакет] | пряжа добавить [пакет] –dev | Добавьте зависимости в devDependencies |
npm i -g [package] | yarn global add [package] | Установить зависимости глобально |
обновление npm --сохранить | yarn upgrade [package] | обновить зависимости |
npm uninstall [package] | yarn remove [package] | удалить зависимости |
Команды для той же операции
Npm | Yarn | Описание функции |
---|---|---|
npm run | yarn run | Запустите скрипт, предопределенный в package.json |
npm config list | yarn config list | Просмотр информации о конфигурации |
npm config устанавливает адрес репозитория реестра | Конфигурация пряжи устанавливает адрес репозитория реестра | Изменить адрес склада |
npm init | yarn init | Интерактивное создание/обновление файлов package.json |
npm list | yarn list | Просмотр установленных пакетов узла в текущем каталоге |
npm login | yarn login | Сохраните имя пользователя и адрес электронной почты |
npm logout | yarn logout | Удалите свое имя пользователя и адрес электронной почты |
npm outdated | yarn outdated | Проверить наличие устаревших зависимостей |
npm link | yarn link | Связывание зависимостей при разработке для использования в других проектах |
npm unlink | yarn unlink | Отключить зависимые пакеты |
npm publish | yarn publish | Опубликовать пакет в npm |
npm test | yarn test | тест = тест пряжи |
npm bin | yarn bin | Отображает каталог установки, в котором находится файл bin. |
yarn info | yarn info | Показать информацию о пакете |
К сказанному необходимо сделать следующие дополнительные пояснения:
- В npm вы можете использовать npm config set save true, чтобы установить --save в качестве поведения по умолчанию, но это не очевидно для большинства разработчиков. В пряже такие действия, как добавление и удаление в package.json, используются по умолчанию.
- Для пакетов, которые будут добавлены или обновлены, как npm, так и yarn могут указывать определенные версии или теги, например:
yarn add [package]@[version]
yarn add [package]@[tag] -
В Китае при использовании npm лучше всего заменить его зеркальным отображением Taobao, чтобы свести к минимуму влияние на сеть и значительно повысить скорость установки зависимых пакетов:
npm config set registry registry.npm.taobao.org
yarn config set registry registry.npm.taobao.orgКонечно, вы также можете установить псевдонимы
cnpm
:alias cnpm="npm --registry=http://registry.cnpmjs.org --cache=$HOME/.npm/.cache/cnpm"
Команды, уникальные для Npm
-
npm rebuild pacakgename: Используется для перестроения после изменения содержимого пакета, например
npm rebuild node-sass
; При использовании Sass (Scss) в качестве препроцессора таблицы стилей и при переупаковке вы можете столкнуться со следующими ошибками, и для решения этой проблемы проще всего использоватьrebuild
команда, даnode-sassПросто перестроить.
Module build failed: ModuleBuildError: Module build failed: Error: Node Sass does not yet support your current environment:
This usually happens because your environment has changed since running npm install. Run npm rebuild node-sass to build the binding for your current environment.
Команды, уникальные для Yarn
-
yarn import: Установлен согласно оригинальному npm
node_modules
Создать каталогyarn.lock
документ; - yarn licenses: Список лицензионной информации об установленных пакетах;
- yarn pack: создать сжатый gzip-архив, зависящий от пакета;
- yarn why: отображает информацию о том, почему был установлен пакет.
- yarn autoclean: очистить и удалить ненужные файлы из зависимостей пакетов.
- ...
Дополнительные приемы, которые использует npm
Как найти правильный пакет npm
Поиск подходящего пакета может быть довольно сложной задачей — на выбор предлагаются тысячи модулей.npms.io/, существование этого сайта значительно облегчает эту задачу; он показываеткачественный,Популярностьа такжеподдерживатьи другие показатели. Эти расчеты основаны на том, есть ли у модуля устаревшие зависимости, настроены ли линтеры, включены ли тесты или была ли сделана недавняя фиксация.
Выполнить бинарный файл пакета npm
Очевидно, черезnpm
илиyarn
установлен и помещен в./node_modules
Пакеты в каталогах, бинарные исполняемые файлы которых доступны./node_modules/.bin
, так как же вызвать его из корневого каталога проекта? Ниже приведены несколько способов, вы можете выбрать любой из них для достижения своей цели:
Для удобства примера, вот работающаяresponsive-email-template(Создание лучших адаптивных шаблонов электронной почты) в качестве примера; полезноmjmlЭта библиотека; рекомендуемый способ для этой библиотеки - установить и использовать ее локально; поэтому для запуска соответствующей команды вы можете управлять ею, используя следующие методы:
- старый и примитивный способ
В папке, куда вы установили MJML, теперь вы можете запустить:
./node_modules/.bin/mjml --watch src/index.mjml -o dist/index.html
- Буду
./node_modules/.bin/
добавить в переменную окружения
export PATH="$PATH:./node_modules/.bin"
mjml --watch src/index.mjml -o dist/index.html
- или используйте горячие клавиши
npm bin
$(npm bin)/mjml --watch src/index.mjml -o dist/index.html
- Или используйте команду скрипта npm
// 将命令配置在 package.json 文件,使用 scripts 字段定义脚本命令
"scripts": {
"mjml": "mjml --watch src/index.mjml -o dist/index.html"
}
// 使用之时,只需运行如下命令即可:
npm run mjml
- или с помощьюnpx
Уведомление:npxвключен в
npm > v5.2
, или может быть установлен отдельно.
# npm install -g npx
npx mjml --watch src/index.mjml -o dist/index.html
Как профилировать пакеты npm
После того, как мы выбрали наши модули, мы должны взглянуть на документацию и проверить открытые проблемы, чтобы лучше понять, что нам понадобится в нашем приложении. Не забывайте, что чем больше пакетов npm вы используете, тем выше риск быть уязвимым или вредоносным.
Если вы хотите открыть домашнюю страницу модуля из cli, вы можете сделать это:
npm home axios
Чтобы проверить открытые проблемы или общедоступные дорожные карты (если они есть), вы можете попробовать следующее:
npm bugs axios
Кроме того, если вы просто хотите проверить git-репозиторий модуля, введите:
npm repo axios
Столь же мощные, как и эти, скрипты npm
npm (и Yarn тоже) позволяютpackage.json
Внутри файла используйтеscripts
Поля определяют команды сценария. Он поддерживает подстановочные знаки,Переменная, хуки, передача внешних параметров, поддержка параллельного и асинхронного выполнения и т. д., поэтому вы можете использоватьnpm script
, чтобы создать собственный эффективный рабочий процесс. Из-за недостатка места эта часть не будет здесь повторяться.Чтобы узнать о конкретном использовании и принципе работы, пожалуйста, обратитесь к статье, написанной @ Ruan Yifeng:руководство по использованию скриптов npm.
Например, иногда возникает необходимость удалить всю историю коммитов репозитория Git, сохранив при этом код в его текущем состоянии; и удалить.git
Папки могут вызывать проблемы в вашем git-репозитории, поэтому есть другой, более безопасный подход: см.Как удалить всю историю коммитов репозитория Git. Но эта операция делается за один подход, и она неизбежна и трудоемка. потом с помощьюnpm script
, выполните следующую команду, и вы можете получить ее одним щелчком мыши (конечно, команду можно определить самостоятельно); если вам нужно выполнить больше, вы также можете добавить больше операций позже.
"scripts": {
"clean-commit": "git checkout --orphan latest_branch && git add -A && git commit -am 'clean past commit history 😊' && git branch -D master && git branch -m master && git push -f origin master"
}
// 或者也可以将其作下拆解,譬如像这样:
"scripts": {
"recommit": "git add -A && git commit -am 'clean past commit history 😊'",
"repush": "git branch -D master && git branch -m master && git push -f origin master",
"clean-commit": "git checkout --orphan latest_branch && npm run recommit && repush"
}
О package-lock.json и yarn.lock
О пряже.lock
Иногда проект имеет длительный цикл, и пока он непрерывно развивается, зависимые библиотеки также будут сильно меняться; иногда вы можете просто захотеть запуститьnpm i
Обновляйте плагины, которые не скачались, но не хотите время от времени обновлять некоторые другие плагины, которые от них зависят, до последних, в результате чего возникают всякие странные проблемы;package-lock.json
а такжеyarn.lock
Это существование создано для решения этой проблемы.
использоватьnpm
илиyarn
, будутpacakge.json
Этот файл используется для отметки зависимостей вашего проекта от каждого пакета библиотеки. Например, ваш проект имеет следующие зависимости:
"dependencies": {
"jade-package": "^2.3.4"
}
этого^определена обратно (новая) совместимая зависимость; вnpm<5.0
Ранее, еслиjade-packageверсия превышает2.3.4, и совпадает с основным номером версии (2), это позволяет загрузить последнюю версиюjade-packageбиблиотечные пакеты, например, могут работатьnpm i
Когда конкретная загруженная версия может быть2.5.8.
В большинстве случаев эта обратная совместимость зависит от загрузки последнего пакета библиотеки без проблем; однако, посколькуnpm
Это мир с открытым исходным кодом, и семантика версии каждого пакета библиотеки может быть разной, не все разработчики могут строго соблюдать этот принцип:Тот же пакет библиотек с тем же основным номером версии, его интерфейс соответствует требованиям совместимости. Кроме того, существуют и другие зависимости между различными пакетами библиотек. В идеале использование Semantic Versioning для выпуска исправлений не должно содержать больших изменений, но, к сожалению, это не всегда так. Эта стратегия npm может привести к тому, что две машины будут иметь одинаковыеpackage.json
На файловой машине на самом деле установлена другая версия пакета, что может вызвать некоторые ошибки. Иногда та же машина немного невнимательнаnpm i
, что может привести кnode_modulesФактические зависимости, установленные в файле, обновляются, что может привести к тому, что проект запустится и станет неузнаваемым.
yarn.lock
Он существует для решения этой проблемы: чтобы получать согласованные результаты на разных машинах, Yarn требуется больше информации, чем список зависимостей, который вы настраиваете в package.json. Yarn должен точно хранить версию каждой установленной зависимости, это похоже на npm-shrinkwrap.json и не имеет побочных эффектов. Просто обратите внимание, что:
yarn.lock
Файл создается автоматически и должен быть полностьюYarn
управлять. Когда вы добавляете/обновляете/удаляете зависимости с помощью Yarn CLI, он автоматически обновит вашyarn.lock
документ. Не редактируйте этот файл напрямую, вы можете легко что-нибудь сломать.
О package-lock.json
когдаNode.js
Обновитьv8.0Позже встроенный npm также был обновлен до версии 5.0; помимо значительного улучшения скорости, он также принес другие большие расширения, в том числеpackage-lock.json
: действие установки модуля (изменение содержимого папки node_modules) будет сгенерировано или обновленоpackage-lock.jsonдокумент;package-lock.json
кnpm, то естьyarn.lcok
кyarnПерепечатка; более подробную информацию можно найти наnpm package-lock.json.
Кроме того, стоит упомянуть, что кто-то на Github специально предоставилSynpИнструмент для: преобразования yarn.lock в package-lock.json и наоборот (преобразования yarn.lock в package-lock.json и наоборот).
написано в конце статьи
У Yarn много похвал по сравнению с конфигурацией Npm по умолчанию. Он может легко генерировать файлы блокировки, очень быстро устанавливать зависимости и будет автоматически добавлен в package.json.В то же время стоимость установки и использования Yarn также очень мала, что делает Yarn идеальной заменой npm. Для npm пряжа немного похожа на io.js и node.js того времени, у них одна и та же цель, как для дальнейшего раскрепощения, так и для повышения производительности, теперь под влиянием пряжи сам npm тоже сильно улучшился (версия > = 5,0). Последнее, что я хочу сказать, это то, что независимо от того, какой инструмент вы используете, вы должны полностью понимать всю картину, знать ее преимущества и недостатки, и тогда вы сможете лучше контролировать ее и сделать так, чтобы она добавляла красок в вашу эффективную и счастливую жизнь.
@2017-12-30 в Шэньчжэне, Наньшань Последнее изменение: 2018-01-02
Статьи, которые могут вас заинтересовать:
- Vimium ~ Пусть ваш Chrome взлетит
- Острое оружие, которому они доверяют, записано
- Любимый артефакт эффективности под Win: AutoHotKey
- Cmder, обязательный артефакт под Win
- Краткое изложение использования нового артефакта кодирования Atom
- Уценка в возвышенном тексте
- MarkdownEditing, инструмент для письма в SublimeText
- ZSH постепенной коллекции Mac Essential Software — Ultimate Shell