8.1 Инициализация проекта
Публикация библиотеки на основе TypeScript на платформе npm позволяет сделать ваш код доступным для широкой аудитории разработчиков. Процесс включает несколько ключевых этапов: создание библиотеки, ее компиляцию, настройку метаданных и публикацию.
В этой лекции мы подробно рассмотрим все шаги создания и распространения npm пакета на основе TypeScript.
Первый шаг в создании TypeScript библиотеки — инициализация нового npm проекта и настройка TypeScript.
Инициализация npm проекта:
mkdir my-ts-library
cd my-ts-library
npm init -y
Этот процесс создаст файл package.json с начальными настройками вашего проекта.
Установка TypeScript:
npm install --save-dev typescript
Создание файла tsconfig.json:
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"declaration": true,
"outDir": "./dist",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}
8.2 Написание кода библиотеки
Создайте директорию src и напишите исходный код вашей библиотеки в этой директории. Например, создадим простую библиотеку для математических операций.
Пример структуры проекта:
my-ts-library/
├── src/
│ ├── index.ts
│ ├── add.ts
│ └── multiply.ts
├── dist/
├── node_modules/
├── package.json
└── tsconfig.json
Пример кода:
src/add.ts:
export function add(a: number, b: number): number {
return a + b;
}
src/multiply.ts:
export function multiply(a: number, b: number): number {
return a * b;
}
src/index.ts:
export * from './add';
export * from './multiply';
8.3 Компиляция TypeScript кода
Чтобы подготовить вашу библиотеку для публикации, необходимо скомпилировать TypeScript код в JavaScript.
Компиляция TypeScript:
npx tsc
После выполнения этой команды ваш скомпилированный код будет находиться в директории dist.
8.4 Настройка package.json
Необходимо настроить файл package.json, чтобы указать на скомпилированные файлы и предоставить метаданные о вашей библиотеке.
Пример package.json:
{
"name": "my-ts-library",
"version": "1.0.0",
"description": "A simple TypeScript math library",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
"build": "tsc",
"prepublishOnly": "npm run build"
},
"repository": {
"type": "git",
"url": "https://github.com/yourusername/my-ts-library.git"
},
"keywords": ["typescript", "math", "library"],
"author": "Your Name",
"license": "MIT",
"devDependencies": {
"typescript": "^4.3.5"
}
}
Обратите внимание на поля main и types, которые указывают на скомпилированные JavaScript и декларации типов.
8.5 Добавление README.md и LICENSE
Чтобы сделать вашу библиотеку более профессиональной и понятной для пользователей, добавьте файл README.md и лицензию.
Пример README.md:
# My TypeScript Library
A simple TypeScript math library.
## Installation
```bash
npm install my-ts-library
```
Usage:
import { add, multiply } from 'my-ts-library';
console.log(add(2, 3)); // 5
console.log(multiply(2, 3)); // 6
**Пример `LICENSE`:**
```text
MIT License
... (полный текст лицензии)
8.6 Публикация на npm
Перед публикацией убедитесь, что у вас есть учетная запись на npmjs.com. Если у вас еще нет учетной записи, зарегистрируйтесь.
Вход в npm:
npm login
Публикация пакета:
npm publish
После успешной публикации ваша библиотека будет доступна для установки через npm.
Управление версионностью
При обновлении вашей библиотеки следите за версионностью. Используйте семантическое версионирование (semver) для управления версиями.
Пример изменения версии:
npm version patch # для исправления ошибок
npm version minor # для добавления новых возможностей, не ломая совместимость
npm version major # для изменений, ломающих обратную совместимость
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ