Выпуск пакета (модуля) NPM, обновление, отмена выпуска

NPM

Прежде чем начать, идиЗарегистрируйтесь в учетной записи NPM, если не

◈ Опубликовать публичный пакет NPM

♢ Создать проект

  1. Создать папку проекта
    Сначала создайте папку проекта или загрузите существующий проект на удаленный git.

    mkdir my-test-project
    
  2. инициализировать 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
    

    Это свяжет локальный репозиторий с удаленным репозиторием.

  3. инициализировать нпм
    в корневом каталоге проекта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файл, в качестве теста, напишите в нем несколько строк простого кода и экспортируйте переменную по умолчанию

♢ Опубликовать

  1. Сначала войдите в систему под пользователем npm и выполните

    npm adduser // or npm login
    Username: npm-user-name
    Password:
    Email: your-email
    

    Введите правильное имя пользователя, пароль и адрес электронной почты npm в соответствии с инструкциями.После добавления он войдет в систему по умолчанию.

  2. воплощать в жизнь

    npm publish
    

    Если нет проблем, выпуск должен быть успешным. Вы можете перейти к npm для поиска выпущенных пакетов:my-test-projectили перейдите в свою учетную запись npm, чтобы просмотреть пакет

♢ О тесте

  1. Протестируйте перед публикацией
    После завершения инициализации 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')
    

    Рекомендуется сначала протестировать, если проблем нет, то опубликовать

  2. Проверьте, есть ли проблема после публикации
    После публикации это сделать проще, просто установите его напрямую через команду npm i как установку других модулей, а потом обратитесь к

◈ Обновление опубликованных пакетов

Команды для обновления пакета и выпуска пакета одинаковы.Чтобы обновить пакет, вам нужно только изменить содержимое в package.jsonversionВы также можете использовать команду управления версиями, которая поставляется с npm, чтобы изменить номер версии.Этапы обновления:

  1. Изменить номер версии
  2. 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 официально имеет ограничения на отзыв пакетов:

  1. Неопубликованные пакеты старше 24 часов не допускаются (unpublish is only allowed with versions published in the last 24 hours)
  2. Если вы действительно хотите отозвать в течение 24 часов, вам нужно добавить параметр --force
  3. Даже если выпущенный пакет отозван, он не может быть выпущен повторно с тем же именем/версией, что и один из ранее отозванных пакетов, потому что уникальность двух была занята, и официальный не удалил его с отзывом

♢ 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'

Ссылаться на: