Мазмунга өтүү

Сабактын башталышы

Оз npm-пакетинизди жарыялоо

Кичине китепкананы жергиликтуу файлдан версияланган, орнотула турган пакетке айландырыныз

Негизги идея: Ушул убакка чейин бардык курстар npm install аркылуу пакеттерди колдонуп келишти. Эми сиз жебени тескери буруп, ондуруучу болосуз. Жарыялоодо сыйкыр жок: пакет -- бул жон гана туура тузулгон package.json манифести жана реестрге жуктолгон архив (tarball) камтылган папка. Манифестти туура жасаныз -- калганы уч буйрукка чейин кыскарат.
Сабактын аягында сиз:
  • жарыялоого даяр package.json жаза аласыз -- name, version, exports, files, license, engines;
  • ар кандай озгортуу учун туура семантикалык версия которуусун тандай аласыз;
  • кируу чекиттерин заманбап exports картасы менен, ESM/CJS кош курулушун кошо, жарыялай аласыз;
  • files жана .npmignore аркылуу кайсы файлдар пакетке киреринин так башкара аласыз;
  • скоуп-пакетти ачык жарыялап, deprecate жана dist-тег жашоо циклин башкара аласыз.

1. package.json -- пакетти аныктаган манифест

Пакет реестрде так эки талаа менен аныкталат: name жана version. Чогуу алар озгоргус координатаны тузот -- @acme/slugify@1.0.0 дегени бир конкреттуу архив, ал жарыялангандан кийин озгортулбойт. Манифестин калган баары ошол архив кантип чечилип, орнотуларын сыпаттайт.

{
  "name": "@acme/slugify",
  "version": "1.0.0",
  "description": "Turn any string into a clean URL slug",
  "type": "module",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js",
      "require": "./dist/index.cjs"
    }
  },
  "files": ["dist", "README.md"],
  "keywords": ["slug", "slugify", "url", "seo"],
  "license": "MIT",
  "engines": { "node": ">=18" },
  "repository": { "type": "git", "url": "git+https://github.com/acme/slugify.git" },
  "publishConfig": { "access": "public" }
}

Жарыялоодо эн маанилуу талаалар:

  • name -- реестрде глобалдуу уникалдуу. Кичине тамга менен, URL учун коопсуз; @acme/slugify сыяктуу скоуп болушу мумкун.
  • version -- semver сабы; ошол ат менен жарыяланган каалаган версиядан жогору болушу керек.
  • exports -- заманбап кируу чекиттеринин картасы (main ордуна). Ал колдонуучулар эмнени импорттой аларын так жарыялайт.
  • files -- архивге эмне кирерин уруксат тизмеси. Ансыз npm папканын дээрлик баарын жонотот.
  • license -- MIT сыяктуу SPDX идентификатору; аны калтырбоо пакетиниди коп командалар учун юридикалык жактан колдонгус кылат.
  • engines -- сиз колдогон Node версиялары, мис. "node": ">=18"; колдонуучулар учун бул катуу тыюу эмес, эскертуу.

Коз карандылыктар уч тобо болунот. dependencies колдонуучуларга автоматтык орнотулат. devDependencies (тест-раннерлер, курастыргычтар, линтерлер) -- жок: алар сиздин репозиторийде гана бар. peerDependencies хост-тиркеме мурунтан беруучу пакетти жарыялайт (озунун фреймворкун талап кылган плагин), аны колдонуучу орнотот, сиз эмес.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө