Некоторые люди скажут: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Он содержит много, много вещей.
Некоторые ямы, если мы не наступим на них, никогда не узнаем, что в них.