sb-babel-cli
Version:
A smarter babel-cli
107 lines (85 loc) • 4.18 kB
Markdown
# SB-Babel-CLI
A smarter babel-cli. Supports caching and removing extra files from output directories.
Also supports running apps like nodemon, with `--execute/-x`, `--execute-delay`
**Note:** For Babel 6, see [0.1.x branch](https://github.com/steelbrain/babel-cli/tree/0.1.x)
**Note:** For v3, see [v3 branch](https://github.com/steelbrain/babel-cli/tree/v3)
### Installation
```
npm install --save-dev sb-babel-cli
# OR Use with npx directory:
npx sb-babel-cli [options] <source directory>
```
### Usage
```
Usage: sb-babel-cli [options] <source directory>
A smarter babel-cli
Options:
-V, --version output the version number
-w, --watch Watch files for changes
--root <directory> Root directory for compilation; where presets and CLI config is resolved from (defaults to cwd)
--cache-directory <directory> Directory to store the cache ".sb-babel-cli" (defaults to homedir)
--ignored <glob> Ignored files and directories that match the given glob (You can specify --ignored <glob> multiple times)
--ignored-for-restart <glob> These files are transpiled, but do not cause restart (You can specify --ignored-for-restart <glob> multiple times)
--source-maps [true|false|inline] Generate source maps for transpiled files
--reset-cache Re-transpile all files ignoring cache
--keep-extra-files Do NOT delete extra files in the output directory
-o, --output-directory <directory> Output directory to write transpiled files to
--output-file-extension <extension> Output file extension (defaults to .js)
-x, --execute <entryFile> Relative path of file to execute (only supported in watcher mode)
--execute-delay <delay> Delay in ms in between restarts of executed file (defaults to 1000ms)
--extensions <exts> Comma separated extensions to process through the CLI (defaults to .js)
--no-load-config Disables loading of "sb-config-file" from package.json (in --root)
--print-config Print the config being used (for debugging only)
--silent Disable log outputs
--debug-port <arg> Passthrough arg for Node.js runtime for programs executed through -x
--inspect-port <arg> Passthrough arg for Node.js runtime for programs executed through -x
--inspect Passthrough arg for Node.js runtime for programs executed through -x
--inspect-brk Passthrough arg for Node.js runtime for programs executed through -x
--inspect-publish-uid <arg> Passthrough arg for Node.js runtime for programs executed through -x
--enable-source-maps Passthrough arg for Node.js runtime for programs executed through -x
-h, --help display help for command
Arguments after -- will be passed as-are to programs executed through -x
```
### Configuration
In addition to specifying options in CLI, you can also add them to your `package.json`s (located through `--root` or cwd)
with the key `sb-babel-cli`. Here are the supported options
```typescript
interface Config {
outputDirectory: string
cacheDirectory: string
outputFileExtension: string
watch: boolean
ignored: string[]
ignoredForRestart: string[]
sourceMaps: boolean | 'inline'
resetCache: boolean
keepExtraFiles: boolean
execute: string
executeDelay: number
extensions: string[]
printConfig: boolean
silent: boolean
nodeArgs: string[]
programArgs: string[]
}
```
For example, for Typescript you can use the following configuration
```json5
// package.json
{
"name": "...",
// ...
"sb-babel-cli": {
"extensions": [".js", ".ts", ".tsx"]
}
}
```
### Examples
```
# To compile contents of src to lib directory
$ sb-babel-cli src -o lib
# To compile contents of src to lib directory and execute lib/server
$ sb-babel-cli src -o lib -x lib/server
```
### License
This project is licensed under the terms of the MIT License. See the LICENSE file for more info.