An open API service indexing awesome lists of open source software.

https://github.com/guoyunhe/node-scripts

Scripts to build, lint and test CLI projects
https://github.com/guoyunhe/node-scripts

Last synced: 3 months ago
JSON representation

Scripts to build, lint and test CLI projects

Awesome Lists containing this project

README

        

# @guoyunhe/node-scripts

Scripts to build, lint and test Node.js projects.

Features:

- Minimum configuration, easy to use
- Output both CJS and ESM bundle
- Lightning fast build speed, powered by esbuild
- Full TypeScript support in build, lint and test
- Ensure good coding style by ESLint and Prettier
- Out of box unit test support, powered by Jest
- Global variable `PACKAGE_NAME` and `PACKAGE_VERSION` to easily inject package information

## Create projects

### Node library

```
npm create @guoyunhe/node my-package
```

Checkout [create-node](https://github.com/guoyunhe/create-node) for more options.

### CLI tool

```
npm create @guoyunhe/cli my-package
```

Checkout [create-cli](https://github.com/guoyunhe/create-cli) for more options.

## Options

### --help

Show help.

### --version

Show version.

## Commands

### build

Build CJS, ESM and TypeScript declaration (\*.d.ts).

```
node-scripts build
```

CJS and ESM builds are powered by esbuild, one of the fastest JavaScript complier and bundler.
TypeScript declarations are generated by TypeScript and bundled by API Extractor from Microsoft.

The build command read entry `src/index.ts`. CJS is output at `dist/index.js`. ESM is output at
`dist/index.mjs`. Declaration is output at `dist/index.d.ts`.

For CLI projects, it scans `src/bin/*.ts`. For example, `src/bin/my-cli.ts` outputs `dist/my-cli.js`
(CJS) and `dist/my-cli.mjs` (ESM).

Support watch mode with `--watch` option.

```
node-scripts build --watch
```

### watch

Watch mode. Same as `node-scripts build --watch`.

```
node-scripts watch
```

### lint

```
node-scripts format
```

Check your code with ESLint.

Support auto fix code issues with `--fix` option. (This will also run Prettier for formatting)

```
node-scripts lint --fix
```

### format

Format code and fix ESLint issues. Same as `node-scripts lint --fix`.

```
node-scripts format
```

### test

Run unit tests with Jest. Generate coverage report at `coverage`.

```
node-scripts test
```

Support all [Jest CLI options](https://jestjs.io/docs/cli). For example:

```bash
# Watch mode
node-scripts test --watchAll

# Update snapshots
node-scripts test -u
```