Прежде чем начать, идиЗарегистрируйтесь в учетной записи NPM, если не
◈ Опубликовать публичный пакет NPM
♢ Создать проект
-
Создать папку проекта
Сначала создайте папку проекта или загрузите существующий проект на удаленный git.mkdir my-test-project
-
инициализировать git
Перейдите в эту папку и инициализируйте git (если вы еще этого не сделали) для контроля версий. Создайте новый удаленный склад с тем же именем, что и проект на github (или других), и добавьтеREADME.md
файл, скопируйте адрес репозитория, например:// 拷贝github上的仓库地址 git@github.com:username/my-test-project.git git init git remote add origin git@github.com:usename//my-test-project.git git push -u origin master
Это свяжет локальный репозиторий с удаленным репозиторием.
-
инициализировать нпм
в корневом каталоге проектаmy-test-project
Выполнить в каталоге,npm init
, а затем заполните соответствующую информацию в соответствии с подсказками, некоторые из которых можно пропустить для последующих изменений. Обратите внимание, что в поле имени есть несколько моментов, о которых следует напомнить:- Он уникален и не может иметь то же имя, что и все существующие пакеты в npm, иначе при публикации будет выдано сообщение об ошибке разрешения.
npm ERR! You do not have permission to publish "my-test-project". Are you logged in as the correct user? : my-test-project
- Кроме того, существуют также спецификации для именования: символы подчеркивания, заглавные буквы, пробелы и другие символы не могут использоваться, а дефисы (средняя строка) разрешены.
- создать первый
index.js
файл, в качестве теста, напишите в нем несколько строк простого кода и экспортируйте переменную по умолчанию
- Он уникален и не может иметь то же имя, что и все существующие пакеты в npm, иначе при публикации будет выдано сообщение об ошибке разрешения.
♢ Опубликовать
-
Сначала войдите в систему под пользователем npm и выполните
npm adduser // or npm login Username: npm-user-name Password: Email: your-email
Введите правильное имя пользователя, пароль и адрес электронной почты npm в соответствии с инструкциями.После добавления он войдет в систему по умолчанию.
-
воплощать в жизнь
npm publish
Если нет проблем, выпуск должен быть успешным. Вы можете перейти к npm для поиска выпущенных пакетов:
my-test-project
или перейдите в свою учетную запись npm, чтобы просмотреть пакет
♢ О тесте
-
Протестируйте перед публикацией
После завершения инициализации npm его можно использовать в качестве пакета зависимостей для ссылок на другие модули. В соответствии с приведенным выше примером поместите папку my-test-project в папку node_modules другого тестового проекта, чтобы тестовые переменные, ранее экспортированные в index.js, можно было импортировать, как и другие модули, такие как// my-test-project 下的index.js const a = 'this is a test' export default a // or module.exports = a // 引用 import a from 'my-test-project' // or const a = require('my-test-project')
Рекомендуется сначала протестировать, если проблем нет, то опубликовать
-
Проверьте, есть ли проблема после публикации
После публикации это сделать проще, просто установите его напрямую через команду npm i как установку других модулей, а потом обратитесь к
◈ Обновление опубликованных пакетов
Команды для обновления пакета и выпуска пакета одинаковы.Чтобы обновить пакет, вам нужно только изменить содержимое в package.jsonversion
Вы также можете использовать команду управления версиями, которая поставляется с npm, чтобы изменить номер версии.Этапы обновления:
- Изменить номер версии
- npm publish
♢ ВЕРСИЯ НПМ
Официально предоставлено npmnpm version
Для управления версиями эффект такой же, как при ручном изменении поля версии в package.json, преимущество в том, что его можно использовать в процессе сборки.npm version
Команды автоматически модифицируются и семантическиSemantic versioning
.
npm version [<newversion> | major | minor | patch | premajor | preminor |
prepatch | prerelease | from-git]
Его семантика такова:
major:主版本号(大版本)
minor:次版本号(小更新)
patch:补丁号(补丁)
premajor:预备主版本
preminor: 预备次版本
prepatch:预备补丁版本
prerelease:预发布版本
Если начальная версия 1.0.0, после выполнения команды соответствующего типа соответствующая семантика будет следующей:
npm version patch // 1.0.1 表示小的bug修复
npm version minor // 1.1.0 表示新增一些小功能
npm version mmajor // 2.0.0 表示大的版本或大升级
npm version preminor // 1.1.0-0 后面多了个0,表示预发布
Вы можете увидеть соответствующие изменения версии в package.json текущего модуля.
◈ Отменить публикацию
Поскольку выпуск отзыва делает невозможным использование отзываемого пакета в качестве зависимого пакета, npm официально имеет ограничения на отзыв пакетов:
- Неопубликованные пакеты старше 24 часов не допускаются (
unpublish is only allowed with versions published in the last 24 hours
) - Если вы действительно хотите отозвать в течение 24 часов, вам нужно добавить параметр --force
- Даже если выпущенный пакет отозван, он не может быть выпущен повторно с тем же именем/версией, что и один из ранее отозванных пакетов, потому что уникальность двух была занята, и официальный не удалил его с отзывом
♢ npm отменить публикацию
Команда для отмены публикации — npm unpublish.
npm unpublish my-test-project
// 报错
npm ERR! Refusing to delete entire project.
npm ERR! Run with --force to do this.
npm ERR! npm unpublish [<@scope>/]<pkg>[@<version>]
// 加 --force参数重新撤销发布
npm unpublish my-test-project --force
npm WARN using --force I sure hope you know what you are doing.
- my-test-project
♢ npm устарел
npm unpublish
Рекомендуемая альтернативная команда для:
npm deprecate <pkg>[@<version>] <message>
Эта команда не сделает существующий пакет в npm устаревшим, но получит устаревшее предупреждение, когда кто-либо попытается установить пакет, например:
npm deprecate my-test-project 'this package is no longer maintained'
Ссылаться на: