create-ts-lib
A yet another Typescript Webpack Starter
Built upon
- [x] Webpack 3
- [x] Typescript 2
- [x] Webpack Dashboard
- [x] Karma, Jasmine
Quick Overview
npm install -g create-ts-lib
create-ts-lib my-typescript-lib
cd my-typescript-lib/
npm start
Then open http://localhost:3000/ to see your bootstrapped module.
When youβre ready to deploy to production, create a minified bundle with npm run build
.
Get Started Immediately
You donβt need to install or configure tools like Webpack or Babel.
They are preconfigured so that you can focus on the code, but as a starter kit you still can modify them.
Just create a project, and youβre good to go.
Getting started
Installation
Install it once globally:
npm install -g create-ts-lib
Creating a TypeScript module
To create a new module, run:
create-ts-lib my-ts-module
cd my-ts-module
It will create a directory called my-ts-module
inside the current folder.
Inside that directory, it will generate the initial project structure and install the transitive dependencies:
my-ts-module
βββ node_modules
βββ src
β βββ index.html
β βββ index.spec.ts
β βββ index.ts
β βββ vendor.js
βββ tests
β βββ unit
β βββ spec-bundle.js
βββ README.md
βββ package.json
βββ .gitignore
βββ karma.conf.js
βββ tsconfig.json
βββ tslint.json
βββ typings.json
βββ webpack.config.js
No configuration or complicated folder structures, just the files you need to build your app.
Once the installation is done, you can run some commands inside the project folder:
npm start
or npm run server:prod
Runs the app in development / production mode using Webpack dev server. Open http://localhost:3000 π to view it in the browser.
npm test
Runs the unit tests using Karma as test runner and Jasmine as testing framework.
npm run build
or npm run build:prod
Build a development release
After build phase, 3 files are generated into the dist
folder:
app.bundle.js
- contains the core of the application. From the entry pointsrc/index.ts
vendor.bundle.js
- contains the vendor dependencies. From the entry pointsrc/vendor.ts
(lodash is added as an example)index.html
- html page referencing these files