2016-01-16 13:09:33 +00:00
|
|
|
# npmts
|
2016-01-16 13:20:14 +00:00
|
|
|
Write npm modules with TypeScript without hassle.
|
2016-01-16 13:09:33 +00:00
|
|
|
|
2016-02-09 16:19:27 +00:00
|
|
|
## Status
|
2016-02-14 02:19:54 +00:00
|
|
|
[![Build Status](https://travis-ci.org/pushrocks/npmts.svg?branch=master)](https://travis-ci.org/pushrocks/npmts)
|
|
|
|
[![Dependency Status](https://david-dm.org/pushrocks/npmts.svg)](https://david-dm.org/pushrocks/npmts)
|
|
|
|
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/npmts/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/npmts/master/dependencies/npm)
|
|
|
|
[![bitHound Code](https://www.bithound.io/github/pushrocks/npmts/badges/code.svg)](https://www.bithound.io/github/pushrocks/npmts)
|
2016-02-14 02:20:53 +00:00
|
|
|
[![Coverage Status](https://coveralls.io/repos/github/pushrocks/npmts/badge.svg?branch=master)](https://coveralls.io/github/pushrocks/npmts?branch=master)
|
2016-02-09 16:19:27 +00:00
|
|
|
|
2016-01-16 13:09:33 +00:00
|
|
|
## How to use npmts
|
|
|
|
|
|
|
|
### Install
|
|
|
|
First install npmts as dev dependency:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
npm install npmts --save-dev
|
|
|
|
```
|
|
|
|
|
|
|
|
Then use it in package.json's script section to trigger a build:
|
|
|
|
|
|
|
|
```json
|
|
|
|
"scripts": {
|
|
|
|
"test": "npmts"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
### Default behaviour
|
2016-02-14 02:12:02 +00:00
|
|
|
|
|
|
|
**Execution order of tasks**
|
|
|
|
|
|
|
|
1. Install typings
|
|
|
|
2. Compile TypeScript
|
2016-02-16 08:52:24 +00:00
|
|
|
3. Create Declaration Files
|
2016-02-14 02:12:02 +00:00
|
|
|
4. Instrumentalize created JavaScript files with istanbul
|
|
|
|
5. Run Tests
|
|
|
|
6. Create Coverage report
|
|
|
|
7. Upload Coverage reports to travis (must be activated, only triggers on travis)
|
|
|
|
|
|
|
|
|
2016-02-14 02:13:03 +00:00
|
|
|
#### Typings
|
2016-02-14 02:12:02 +00:00
|
|
|
**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
|
2016-01-18 14:15:15 +00:00
|
|
|
by default npmts looks for `./ts/index.ts` and `./ts/test.ts` that will compile to
|
2016-01-16 13:20:14 +00:00
|
|
|
`./index.js` and `./test.js`
|
|
|
|
|
2016-02-14 02:13:03 +00:00
|
|
|
#### Declaration files
|
2016-01-18 14:35:44 +00:00
|
|
|
**npmts** also creates an `index.d.ts` declaration file by default.
|
2016-01-18 14:20:23 +00:00
|
|
|
You can reference it in your package.json like this:
|
|
|
|
|
|
|
|
```json
|
|
|
|
"main": "index.js",
|
|
|
|
"typings": "./index.d.ts",
|
|
|
|
```
|
|
|
|
|
2016-02-14 02:13:03 +00:00
|
|
|
#### Instrumentalize Code
|
2016-02-14 02:12:02 +00:00
|
|
|
npmts instrumentalizes the created JavaScript code to create a coverage report.
|
|
|
|
|
2016-02-14 02:13:03 +00:00
|
|
|
#### Tests
|
2016-02-14 02:12:02 +00:00
|
|
|
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.
|
|
|
|
|
2016-01-18 14:20:23 +00:00
|
|
|
When requiring the module from other TypeScript files,
|
|
|
|
the TypeScript Compiler will use the declaration file to resolve typings.
|
|
|
|
|
2016-01-18 14:35:44 +00:00
|
|
|
|
2016-01-18 14:15:15 +00:00
|
|
|
|
2016-01-16 13:42:30 +00:00
|
|
|
### Custom behaviour
|
2016-02-14 02:12:02 +00:00
|
|
|
Custom behaviour can be achieved through a config file at the root of your package.
|
|
|
|
The file must be named **npmts.json**
|
2016-02-04 19:41:34 +00:00
|
|
|
|
|
|
|
```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.
|
2016-01-16 13:42:30 +00:00
|
|
|
|
2016-02-14 02:12:02 +00:00
|
|
|
|
2016-01-16 13:42:30 +00:00
|
|
|
## Readme for Devs
|
|
|
|
There is a [README-dev.md](README-dev.md) in the repo.
|
2016-01-18 14:15:15 +00:00
|
|
|
This is only of interest for you when looking to contribute to, improve or build upon this package.
|