Как настроить сборку библиотеки с использованием TypeScript и типов с помощью Vite?

Как настроить сборку библиотеки на Vite с типами, чтобы итоговый JS-файл содержал типы, которые можно использовать в дальнейшем?
Изображение к вопросу
  • 20 сентября 2023 г. 3:57
Ответы на вопрос 2
Для настройки сборки библиотеки с использованием TypeScript и типов с помощью Vite, вам потребуется выполнить следующие шаги:

1. Создайте новый проект Vite с помощью следующей команды:

```
npm init vite@latest
```

2. Выберите тип проекта, который соответствует вашим потребностям, например, "library".

3. После создания проекта, установите зависимости TypeScript и типов следующей командой:

```
npm install typescript @types/node -D
```

4. Создайте файл `tsconfig.json` в корне проекта и настройте его следующим образом:

```json
{
  "compilerOptions": {
    "declaration": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["ESNext", "DOM"],
    "moduleResolution": "node",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "exclude": ["node_modules", "dist"]
}
```

Опция `"declaration": true` позволяет создавать файлы типов `.d.ts`.

5. Создайте папку `src` и в ней файл `index.ts`, который будет содержать код вашей библиотеки.

6. В `package.json` добавьте следующие скрипты:

```json
{
  "scripts": {
    "build": "tsc && vite build",
    "dev": "vite"
  }
}
```

Скрипт `"build"` будет сначала выполнять компиляцию TypeScript, а затем сборку проекта с помощью Vite.

7. В `vite.config.js` добавьте следующую конфигурацию, чтобы Vite правильно обрабатывал модули типов:

```js
export default {
  build: {
    lib: {
      entry: 'src/index.ts',
      name: 'MyLibrary',
      fileName: 'index',
    },
    rollupOptions: {
      external: ['vue'], // если ваша библиотека зависит от Vue, добавьте его сюда
      output: {
        globals: {
          vue: 'Vue', // если ваша библиотека зависит от Vue, добавьте его сюда
        }
      }
    }
  }
}
```

В данном примере предполагается, что ваша библиотека зависит от Vue, поэтому указано, что он должен быть внешней зависимостью.

8. Выполните сборку вашей библиотеки с помощью команды:

```
npm run build
```

После этого, итоговый JS-файл с типами будет доступен в папке `dist` вашего проекта.

Теперь вы можете использовать вашу библиотеку и ее типы в других проектах, подключив их с помощью npm или yarn.
Рекомендуется использовать tsc вместо vite для сборки проекта, а также использовать библиотеку styled-components для работы со стилями.
Похожие вопросы