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

Пакетирование и публикация TypeScript модулей

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

9.1 Подготовка проекта

Создание и публикация TypeScript модулей — важный аспект разработки библиотек и инструментов, которые могут использоваться другими разработчиками. Процесс включает в себя создание TypeScript-модуля, его сборку в формат, совместимый с JavaScript, а также публикацию на платформе, такой как npm.

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

Для начала создайте новый проект и инициализируйте его с помощью npm:

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

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

Создайте файл tsconfig.json в корне проекта. Этот файл будет содержать конфигурацию TypeScript компилятора. Укажите такие настройки: создание деклараций типов (declaration: true), компиляция в стандарт ECMAScript 6 (target: "ES6") и использование модуля CommonJS (module: "commonjs").

Пример tsconfig.json:

JSON
    
      {
        "compilerOptions": {
          "target": "ES6",
          "module": "commonjs",
          "declaration": true,
          "outDir": "./dist",
          "strict": true
        },
        "include": ["src"],
        "exclude": ["node_modules", "dist"]
      }
    
  

9.2 Написание кода модуля

Создайте папку src в корне проекта и добавьте исходные файлы TypeScript.

Пример src/index.ts:

TypeScript
    
      export function add(x: number, y: number): number {
        return x + y;
      }

      export function subtract(x: number, y: number): number {
        return x - y;
      }
    
  

Этот файл экспортирует две функции add и subtract.

9.3 Сборка проекта

Настройте сборку проекта с использованием TypeScript компилятора. Добавьте скрипт сборки в файл package.json.

Пример package.json:

JSON
    
      {
        "name": "my-typescript-library",
        "version": "1.0.0",
        "main": "dist/index.js",
        "types": "dist/index.d.ts",
        "scripts": {
          "build": "tsc"
        },
        "devDependencies": {
          "typescript": "^4.3.5",
          "@types/node": "^14.14.31"
        }
      }
    
  

Поле main указывает на основной файл вашей библиотеки, а поле types указывает на файл деклараций типов. Запустите сборку проекта.

Terminal
    
      npm run build
    
  

После выполнения команды в папке dist появятся скомпилированные файлы JavaScript и декларации типов.

9.4 Добавление README и лицензии

Добавьте файл README.md с описанием вашей библиотеки.

Пример README.md:

Text
    
      # My TypeScript Library

      This is a simple TypeScript library that provides basic arithmetic functions.

      ## Installation
      npm install my-typescript-library

      ## Usage
      import { add, subtract } from 'my-typescript-library';

      console.log(add(2, 3)); // 5
      console.log(subtract(5, 3)); // 2
    
  

Также добавьте файл лицензии, например, LICENSE.md.

Пример LICENSE.md:

Text
    
      MIT License

      Copyright (c) 2024 My Name

      Permission is hereby granted, free of charge, to any person obtaining a copy
      of this software and associated documentation files (the "Software"), to deal
      in the Software without restriction, including without limitation the rights
      to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      copies of the Software, and to permit persons to whom the Software is
      furnished to do so, subject to the following conditions:
      ...
    
  

9.5 Тестирование модуля

Для обеспечения качества вашей библиотеки важно добавить тесты. Вы можете использовать популярные инструменты, такие как Jest или Mocha.

Установка Jest:

Terminal
    
      npm install jest @types/jest ts-jest --save-dev
    
  

Настройка Jest:

Создайте файл jest.config.js:

JavaScript
    
      module.exports = {
        preset: 'ts-jest',
        testEnvironment: 'node',
        testMatch: ['**/tests/**/*.test.ts']
      };
    
  

Добавление тестов:

Создайте папку tests и добавьте тестовые файлы.

Пример tests/index.test.ts:

JavaScript
    
      import { add, subtract } from '../src/index';

      test('adds 1 + 2 to equal 3', () => {
        expect(add(1, 2)).toBe(3);
      });

      test('subtracts 5 - 2 to equal 3', () => {
        expect(subtract(5, 2)).toBe(3);
      });
    
  

Добавление скрипта тестирования в package.json:

JSON
    
      "scripts": {
        "build": "tsc",
        "test": "jest"
      }
    
  

Запуск тестов:

Terminal
    
      npm test
    
  

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

Чтобы опубликовать ваш модуль на npm, выполните следующие шаги:

Вход в учетную запись npm:

Terminal
    
      npm login
    
  

Публикация модуля:

Terminal
    
      npm publish
    
  

Убедитесь, что имя вашего пакета уникально и не конфликтует с уже существующими пакетами на npm.

Управление версиями

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

  • PATCH: исправления ошибок, не влияющие на API
  • MINOR: добавление новых функций, не нарушающих обратную совместимость
  • MAJOR: изменения, нарушающие обратную совместимость
3
Задача
Модуль 2: Fullstack, 7 уровень, 8 лекция
Недоступна
Настройка проекта с TypeScript
Настройка проекта с TypeScript
3
Задача
Модуль 2: Fullstack, 7 уровень, 8 лекция
Недоступна
Написание и сборка модуля
Написание и сборка модуля
3
Задача
Модуль 2: Fullstack, 7 уровень, 8 лекция
Недоступна
Тестирование модуля
Тестирование модуля
3
Задача
Модуль 2: Fullstack, 7 уровень, 8 лекция
Недоступна
Публикация модуля на npm
Публикация модуля на npm
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ