Некоторые люди скажут:publish
Модульный пакет, что в нем сложного? непосредственныйnpm publish
Разве это не будет хорошо?
На самом деле, в противном случае у нас все равно будут следующие проблемы:
- Юнит-тесты прошли?
- Как отправить тестовые пакеты?
- Могу ли я пометить его после публикации?
существуетgithub
есть пакетnp, который, кажется, решает вышеуказанную проблему.
В какой-то степени это действительно возможно.
Первый вопрос
согласно сnp
Процесс заключения контракта должен быть представлен в первую очередьcommit
, но иногда мы просто говорим, что хотим отправить тестовую посылку другим друзьям, потому что мы не знаем, правильно ли это, поэтому нам не очень хочется сначалаcommit
.
Итак, мы должны достичь--no-git
функция, т.е. когда есть этоargs
, вы можете обойтиnp
Представлена спецификация пакета.
Тем не менее, вот предложение, котороеscripts
Поместите внутрь две команды:
{
"scripts": {
"pub:test": "np --no-git",
"pub": "np"
}
}
В волосах测试包
, используйте приведенную выше команду. Отправить正式版本
когда используешьpub
Заказ.
второй вопрос
После выбора (подтверждения) номера версии,np
будуpackage.json
изversion
изменить и отправитьcommit
, генерировать локальныеtag
.
Эта проблема вызовет, отправьте测试包
, в конечном итоге сгенерирует тег, и естьcommit
Отправьте запись.
Так что же вызвало это? Я долго искал и наконец нашел罪魁祸首
, сначала я не мог в это поверить:
Да, вы не ошиблись:
yarn version --version 版本号
Просто сделайте следующее:
- git add
- git commit
- git tag
третий вопрос
Обычно мы делаем каноническую точку组件包
, буду использоватьcommitizen
.
Конечно, но и с.commitlintrc
Регулировать и сдерживать нашcommit message
.
Итак, возникает вопрос:
- как изменить
yarn version --verion 版本号
изcommit message
- опубликовано
type
Как лучше назвать?
Я лично даю это.type
значениеpublish
. Затем мы искали документацию и нашлиyarn
Предусмотрены аналогичные команды: (npm также можно найти, проверив документацию)
yarn config set version-git-message "v%s"
четвертый вопрос
как охранятьnpm publish
команда, то есть под текущим пакетом модулей отключитьnpm publish
, используйте вместоyarn pub
для публикации пакета модуля.
существуетantd-tools
На самом деле естьguard
Команда, мы можем просто посмотреть на исходный код, чтобы было понятно, ядром является это предложение:
После прочтения исходного кода, если вы действительно хотите отправить пакет, вы также можете передать:
npm publish --with-antd-tools
отnp
С точки зрения--with-antd-tools
идентификация.
Пятый вопрос
Это расширение четвертого вопроса, обычно четвертого вопроса.守护
Если да, то вот как:
{
"scripts": {
"prepublish": "antd-tools run guard",
"prepare": "antd-tools run guard",
"prepublishOnly": "antd-tools run guard",
}
}
если мы хотимpublish
выполнено доbuild
илиcompile
Или выполнить другие команды, где их разместить?
Конечно, вы можете выбратьprepublishOnly
команда, через&&
связанных с опекой.
antd-tools
делается черезpre-publish
команда, в инструменте,publish
При выполнении сначала запускаетсяpre-publish
.
Таким образом, мы действительно можем рассмотреть вопрос о размещенииnp
Иди в этом мешке. Конечно, время выполненияtest
После этого, посколькуtest
не пройдено, выполнитьbuild
Или что-то еще, лично мне это не имеет особого смысла.
Шестой вопрос
Это конец? Нет-нет-нет, это всего лишь обычный выпуск компонента.
В некоторых случаях нам нужно использоватьlerna
создать несколькоpackages
.
Так что вопрос в том, как сохранитьtags
, так как отправка по умолчаниюtags
Такова, что:
Я пытался получить отcreate-react-app
Найдите их программы на:
Хорошо, тогда нам нужно настроить следующие параметры:
Эпилог
Размышляя над приведенными выше шестью вопросами, мы можем понятьpublish
Он содержит много, много вещей.
Некоторые ямы, если мы не наступим на них, никогда не узнаем, что в них.