https://github.com/ericvera/typescript-build
https://github.com/ericvera/typescript-build
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/ericvera/typescript-build
- Owner: ericvera
- Created: 2021-04-26T20:28:43.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-01-30T19:10:07.000Z (over 3 years ago)
- Last Synced: 2024-04-26T04:43:44.211Z (about 2 years ago)
- Language: TypeScript
- Size: 1.19 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TypeScript Build v2.0.0+
**Copy files to output directory after `tsc` build**
TypeScript Build (tsb) works in one of two modes. **TSC** mode will run `tsc` with the arguments passed to `tsb` and copy files based on a config if present while **Copy only** mode will only copy files based on the `tsbconfig.json` content.
## Install
```
npm install --dev typescript typescript-build
```
or
```
yarn add --dev typescript typescript-build
```
## Usage
1. At the root of the project (next to your `tsconfig.json` if in TSC mode) create a `tsbconfig.json` as described below.
1. Run the `tsb` command as you would `tsc`.
### Example
```json
{
"copyFiles": [
{
"files": ["src/**/*.css"],
"outDirectories": ["dist"],
"up": 1
}
]
}
```
- `files`: array of [globs](https://github.com/isaacs/node-glob) to match and copy to `outDirectories`
- `outDirectories`: the output directories relative to the directory of the `tsbconfig.json` file
- `up`: (optional) number of directories to remove from the matches
- `skipClean`: (optional/default to false) will skip removing the `outDirectories` on clean
Let's say you have a `tsconfig.json` file with `"outDirectories": ["dist"]` and the above `tsbconfig.json` in the same directory, and you run `tsb --build` the following will happen:
1. TSB will execute `tsc --build`
1. If `tsc` succeeds, it will copy all of the css files from the src directory into the dist directory matching the directory, but removing one level form the matches. (e.g. `src/papaya/coolcss.css` will be copied to `dist/papaya/coolcss.css`)
In the case of `tsb --build --clean` it will:
1. Execute `tsc --build --clean`
1. If `tsc` succeeds, it will delete the `outDirectories` and all of its content unless `skipClean` is set to `true`.
## FAQ
- Why is nothing happening?
- `tsb` will only perform the copy of files if the `--build` options is used and the clean-up if both `--build` and `--clean` options are used.
- Will it follow references?
- Yes. TSB will follow all the references and look for `tsbconfig.json` files next to each of the referenced tsconfig files.