ctix - Next generation Create TypeScript Index file
Installation
npm i ctix --save-dev
npx ctix create ./tsconfig.json
Introduction
When you develop package for another application using TypeScript, that is compiled using by webpack, babel. webpack very popular tool for bundling. At this time you need bundle entrypoint called by index.ts.
Manage index.ts(export file), not so convenience. If you add file or class, function you rewrite export file over and over again. ctix
help this work. ctix
read .npmignore, .ctiignore file after ignore there also you can use exclude configuration in tsconfig.json. See below example,
src/
app.ts
component/
Nav.ts
Button.ts
ctix create sub-command create index.ts file below.
src/
app.ts
> index.ts
// created from 'ctix'
export * from './component';
export * from './app';
component/
Nav.ts
Button.ts
> index.ts
// created from 'ctix'
export * from './Nav';
export * from './Button';
ctix single mode generate single file. This file suitable for webpack entrypoint.
src/
app.ts
component/
Nav.ts
Button.ts
> entrypoint.ts
// created from 'ctix'
export * from './src/app.ts'
export * from './src/component/Nav.ts'
export * from './src/component/Button.ts'
Why ctix?
Pros
- pass tsconfig.json file, another process don't care about
- Support default exportation
- my_default_index.test.ts file create
export { default as myDefaultIndexTest } from './my_default_index.test'
Cons
- Something slow some project
- ctix use TypeScript compiler API, big project some slow
What is difference module resolution?
Most inconvenience from import statement that solve module resolution. But module resolution don't helpful for entrypoint create for bundling. ctix helpful this work.
Usage
create
ctix create ./tsconfig.json
or ctix create -p ./tsconfig.json
single
ctix single ./tsconfig.json
or ctix single -p ./tsconfig.json
clean
ctix clean ./tsconfig.json
or ctix clean -p ./tsconfig.json
init
ctix init ./tsconfig.json
or ctix init -p ./tsconfig.json
Option
Name | Short | Default | SubCommand | Description |
---|
--project | -p | required | All | tsconfig.json path: you must pass path with filename, like this "./tsconfig.json" |
--exportFilename | -f | index.ts | create, single, clean | Export filename, if you not pass this field that use "index.ts" or "index.d.ts" |
--verbose | -v | false | All | Display more detailed log |
--addNewline | -n | true | create, single | add newline on EOF |
--useSemicolon | -s | true | create, single | add semicolon on line ending at every export statement |
--useTimestamp | -m | false | create, single | timestamp write on ctix comment right-side, only works in useComment option set true |
--useComment | -c | true | create, single | ctix comment add on first line of creted export file(default index.ts) file, that remark created from ctix |
--quote | -q | ' | create, single | change quote character at export syntax |
--useBackupFile | -b | true | create, single | created backup file if exists export file(default index.ts) file already in directory |
--useRootDir | -r | false | single | output file under rootDir in tsconfig.json. |
rootDir, rootDirs
useRootDir option activate using rootDir option in tsconfig.json. This option run below flowchart.
CLI with .ctirc
ctix cli support .ctirc
configuration file. Available name is only .ctirc
. .ctirc
configuration file can applied by each target directories and script working directory. Every configuration overwrited same feature. Also cti cli arguments forced applied. And .ctirc
file can write json5 format. json5 spec. can comment and more feature.
.ctirc creation
You can use cli for .ctirc
file creation.
> cti init
> cti init ./example/type03 ./example/type02
Language