Skip to content

一个专用于构建 TypeScript 库的工具,1分钟快速初始化你的 TypeScript 工具库。

License

Notifications You must be signed in to change notification settings

lexmin0412/typescript-project-creator

Repository files navigation

TPC

version downloads-month

English | 中文

TypeScript Project Creator, like npm init, but for TS.

Install tpc globally:

npm i -g @lexmin0412/tpc

From now, whenever you want to create a new TypeScript project, just run:

npm init -y
tpc init

What does it actually do? Well, not a lot! It will:

  1. Install dev dependencies: typescript, ts-node and rimraf (for cross-platform rm -rf).
  2. Create npm scripts to build your project with TS compiler and run it with ts-node. Build files will be also properly declared in your package.json and added to .gitignore.
  3. Create a minimalist tsconfig.json file with sane defaults: ES6 with the following flags set to true: alwaysStrict, strictNullChecks, noImplicitAny.

Scripts

  • npm run build - build your project
  • npm run ts - run your project with ts-node

Project structure

  • src/ - your source files, must contain index.ts file.
  • test/ - your test files
  • es/ - ES6 build using ES modules
  • lib/ - ES5 build using CommonJS (npm) modules. This directory contains *.d.ts declaration files too.

Motivation

Almost every JavaScript library should be written in TypeScript.

This project is meant to provide everything you need in order to create an npm library (and potentially any other JS project) with modern TypeScript compiler. This way you can use modern ES6 features and static types without any cost.

In the same time, it tries not to force you to use something which is just an opinionated tool. It doesn't include a linter, testing library like Jest or some heavy TS configuration. Everything is kept as minimal as it's possible.

License

MIT

More

This project was inspired by michowski/ts-init.

About

一个专用于构建 TypeScript 库的工具,1分钟快速初始化你的 TypeScript 工具库。

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages