Skip to content

Commit

Permalink
add readme
Browse files Browse the repository at this point in the history
  • Loading branch information
DiFuks committed May 7, 2024
1 parent 17ca5c5 commit cad9dcd
Show file tree
Hide file tree
Showing 3 changed files with 144 additions and 19 deletions.
19 changes: 0 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +0,0 @@
### Step to reproduce:

1. Install dependencies
```bash
yarn
```
2. Build plugin
```bash
yarn build:plugin
```
3. Run build and type check
```bash
yarn build:tspc # ✅ working
yarn build:ts-loader # ✅ working
yarn build:fork-ts # ✅ working
yarn watch:tspc # ⛔️ not working
yarn watch:ts-loader # ✅ working
yarn watch:fork-ts # ⛔️ not working
```
12 changes: 12 additions & 0 deletions packages/example/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# ts-overrides-plugin example

Commands:

```bash
yarn build:tspc
yarn build:ts-loader
yarn build:fork-ts
yarn watch:tspc
yarn watch:ts-loader
yarn watch:fork-ts
```
132 changes: 132 additions & 0 deletions packages/plugin/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# ts-overrides-plugin

Плагин для `TypeScript`, который позволяет переопределять `tsconfig` для определенных файлов и папок

[![typedoc-theme-hierarchy (latest)](https://img.shields.io/npm/v/ts-overrides-plugin)](https://www.npmjs.com/package/ts-overrides-plugin)
[![typedoc-theme-hierarchy (downloads)](https://img.shields.io/npm/dw/ts-overrides-plugin)](https://www.npmjs.com/package/ts-overrides-plugin)
[![typedoc-theme-hierarchy (stars)](https://img.shields.io/github/stars/difuks/ts-overrides-plugin?style=social)](https://github.com/DiFuks/ts-overrides-plugin)

## Зачем нужен?

Самый популярный вариант использования – перевод проекта с `strict: false` на `strict: true`, но также подходит для
любых других случаев, когда нужно переопределить настройки tsconfig для определенных файлов или папок.

## Установка и настройка

Примеры можно увидеть в папке [`example`](https://github.com/DiFuks/ts-overrides-plugin/tree/main/packages/example).

### Для использования плагина только в IDE

Выполнить в терминале:
```bash
yarn add -D ts-overrides-plugin
```

В файле `tsconfig.json` добавить:
```json5
{
"compilerOptions": {
"plugins": [
{
"name": "ts-overrides-plugin",
"config": {
"overrides": [
{
"files": ["src/modern/**/*.{ts,tsx}"], // Путь к файлам (glob), для которых нужно переопределить настройки. Не должен начинаться с './'
"compilerOptions": { // Настройки для этих файлов
"strict": true
}
}
]
}
}
]
}
}
```

### Для использования в `webpack`, `tsc`

Для корректной работы плагина в `webpack`, `tsc` необходимо использовать библиотеку [`ts-patch`](https://github.com/nonara/ts-patch).

Выполнить в терминале:

```bash
yarn add -D ts-overrides-plugin ts-patch
```

В файле `tsconfig.json` добавить:

```json5
{
"compilerOptions": {
"plugins": [
{
"name": "ts-overrides-plugin",
"transform": "ts-overrides-plugin/cli",
"transformProgram": true,
"overrides": [
{
"files": ["src/modern/**/*.{ts,tsx}"], // Путь к файлам (glob), для которых нужно переопределить настройки. Не должен начинаться с './'
"compilerOptions": { // Настройки для этих файлов
"strict": true,
},
},
]
}
]
}
}
```

Для команды `tsc` – заменить на `tspc` в `package.json`:

```json5
{
"scripts": {
"build": "tspc"
}
}
```

Для `ForkTsCheckerWebpackPlugin` в файле `webpack.config.js` добавить:

```js
const path = require('path');

module.exports = {
plugins: [
new ForkTsCheckerWebpackPlugin({
typescript: {
typescriptPath: require.resolve('ts-patch/compiler'),
}
}),
],
};
```

Для `ts-loader` в файле `webpack.config.js` добавить:

```js
const path = require('path');

module.exports = {
module: {
rules: [
{
test: /\.ts$/,
exclude: /node_modules/,
loader: 'ts-loader',
options: {
compiler: require.resolve('ts-patch/compiler'),
}
},
],
},
};
```

## Известные проблемы

- Пути в `tsconfig` не должны начинаться с `./`
- Плагин не работает в `WebStorm` при использовании `yarn pnp`

0 comments on commit cad9dcd

Please sign in to comment.