JavaRush /Курсы /Модуль 2: Fullstack /Публикация TypeScript библиотек

Публикация TypeScript библиотек

Модуль 2: Fullstack
10 уровень , 7 лекция
Открыта

8.1 Инициализация проекта

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

В этой лекции мы подробно рассмотрим все шаги создания и распространения npm пакета на основе TypeScript.

Первый шаг в создании TypeScript библиотеки — инициализация нового npm проекта и настройка TypeScript.

Инициализация npm проекта:

Terminal
    
      mkdir my-ts-library
    
  
    
      cd my-ts-library
    
  
    
      npm init -y
    
  

Этот процесс создаст файл package.json с начальными настройками вашего проекта.

Установка TypeScript:

Terminal
    
      npm install --save-dev typescript
    
  

Создание файла tsconfig.json:

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 и напишите исходный код вашей библиотеки в этой директории. Например, создадим простую библиотеку для математических операций.

Пример структуры проекта:

Text
    
      my-ts-library/
      ├── src/
      │   ├── index.ts
      │   ├── add.ts
      │   └── multiply.ts
      ├── dist/
      ├── node_modules/
      ├── package.json
      └── tsconfig.json
    
  

Пример кода:

src/add.ts:

TypeScript
    
      export function add(a: number, b: number): number {
        return a + b;
      }
    
  

src/multiply.ts:

TypeScript
    
      export function multiply(a: number, b: number): number {
        return a * b;
      }
    
  

src/index.ts:

TypeScript
    
      export * from './add';
      export * from './multiply';
    
  

8.3 Компиляция TypeScript кода

Чтобы подготовить вашу библиотеку для публикации, необходимо скомпилировать TypeScript код в JavaScript.

Компиляция TypeScript:

Terminal
    
      npx tsc
    
  

После выполнения этой команды ваш скомпилированный код будет находиться в директории dist.

8.4 Настройка package.json

Необходимо настроить файл package.json, чтобы указать на скомпилированные файлы и предоставить метаданные о вашей библиотеке.

Пример package.json:

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:

README.md
    
      # My TypeScript Library

      A simple TypeScript math library.

      ## Installation

      ```bash
      npm install my-ts-library
      ```
    
  

Usage:

TypeScript
    
      import { add, multiply } from 'my-ts-library';

      console.log(add(2, 3)); // 5
      console.log(multiply(2, 3)); // 6
    
  
LICENSE.md
    
      **Пример `LICENSE`:**

      ```text
      MIT License
      ... (полный текст лицензии)
    
  

8.6 Публикация на npm

Перед публикацией убедитесь, что у вас есть учетная запись на npmjs.com. Если у вас еще нет учетной записи, зарегистрируйтесь.

Вход в npm:

Terminal
    
      npm login
    
  

Публикация пакета:

Terminal
    
      npm publish
    
  

После успешной публикации ваша библиотека будет доступна для установки через npm.

Управление версионностью

При обновлении вашей библиотеки следите за версионностью. Используйте семантическое версионирование (semver) для управления версиями.

Пример изменения версии:

Terminal
    
      npm version patch   # для исправления ошибок
    
  
    
      npm version minor   # для добавления новых возможностей, не ломая совместимость
    
  
    
      npm version major   # для изменений, ломающих обратную совместимость
    
  
3
Задача
Модуль 2: Fullstack, 10 уровень, 7 лекция
Недоступна
Инициализация TypeScript проекта
Инициализация TypeScript проекта
3
Задача
Модуль 2: Fullstack, 10 уровень, 7 лекция
Недоступна
Реализация математической библиотеки
Реализация математической библиотеки
3
Задача
Модуль 2: Fullstack, 10 уровень, 7 лекция
Недоступна
Компиляция библиотеки
Компиляция библиотеки
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ