2.9 KiB
npmts
Write npm modules with TypeScript without hassle.
Status
How to use npmts
Install
First install npmts as dev dependency:
npm install npmts --save-dev
Then use it in package.json's script section to trigger a build:
"scripts": {
"test": "npmts"
}
Default behaviour
Execution order of tasks
- Install typings
- Compile TypeScript
- Create Declaration Files
- Instrumentalize created JavaScript files with istanbul
- Run Tests
- Create Coverage report
- Upload Coverage reports to travis (must be activated, only triggers on travis)
Typings
npmts looks for ./ts/typings.json
by default and installs any defined typings to .ts/typings/
.
You can then reference the ./ts/typings/main.d.ts file in your TypeScript code.
TypeScript
by default npmts looks for ./ts/index.ts
and ./ts/test.ts
that will compile to
./index.js
and ./test.js
Declaration files
npmts also creates an index.d.ts
declaration file by default.
You can reference it in your package.json like this:
"main": "index.js",
"typings": "./index.d.ts",
Instrumentalize Code
npmts instrumentalizes the created JavaScript code to create a coverage report.
Tests
When Typings have been installed, TypeScript + Declaration files have been transpiled and the resulting JS has been instrumentalized,
npmts runs .test/test.js
with mocha.
When requiring the module from other TypeScript files, the TypeScript Compiler will use the declaration file to resolve typings.
Custom behaviour
Custom behaviour can be achieved through a config file at the root of your package. The file must be named npmts.json
{
"mode":"custom",
"ts":{
"./customdir/custom.ts":"./customcompiled.js"
},
"typings":[
"./customdir"
]
}
- mode can be "default" or "custom"
- ts You can list as many TypeScript files as you like. The key represents the source TypeScript file, the value the output file.
- typings is an array of all direcories that have a typings.json present. Uses the new typings tool from npm.
Readme for Devs
There is a README-dev.md in the repo. This is only of interest for you when looking to contribute to, improve or build upon this package.