Оз 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 хост-тиркеме мурунтан беруучу пакетти жарыялайт (озунун фреймворкун талап кылган плагин), аны колдонуучу орнотот, сиз эмес.