@loopback/docs
Version:
Documentation for LoopBack 4
121 lines (87 loc) • 3.72 kB
Markdown
# /build
This module contains a set of common scripts and default configurations to build
LoopBack 4 or other TypeScript modules, including:
- lb-tsc: Use
[`tsc`](https://www.typescriptlang.org/docs/handbook/compiler-options.html) to
compile typescript files
- lb-eslint: Run [`eslint`](https://typescript-eslint.io/)
- lb-tslint: Run [`tslint`](https://github.com/palantir/tslint)
- lb-prettier: Run [`prettier`](https://github.com/prettier/prettier)
- lb-mocha: Run [`mocha`](https://mochajs.org/) to execute test cases
- lb-nyc: Run [`nyc`](https://github.com/istanbuljs/nyc)
These scripts first try to locate the CLI from target project dependencies and
fall back to bundled ones in `/build`.
## Basic use
To use `/build` for your package:
1. Run the following command to add `/build` as a dev dependency.
`npm i /build --save-dev`
2. Configure your project package.json as follows:
```json
"scripts": {
"build": "lb-tsc",
"build:watch": "lb-tsc --watch",
"clean": "lb-clean",
"lint": "npm run prettier:check && npm run eslint",
"lint:fix": "npm run prettier:fix && npm run eslint:fix",
"prettier:cli": "lb-prettier \"**/*.ts\" \"**/*.js\"",
"prettier:check": "npm run prettier:cli -- -l",
"prettier:fix": "npm run prettier:cli -- --write",
"eslint": "lb-eslint --report-unused-disable-directives .",
"eslint:fix": "npm run eslint -- --fix",
"pretest": "npm run clean && npm run build",
"test": "lb-mocha \"dist/__tests__\"",
"posttest": "npm run lint",
"start": "npm run build && node .",
"prepublishOnly": "npm run test"
},
```
Please remember to replace `your-module-name` with the name of your module.
Now you run the scripts, such as:
- `npm run build` - Compile TypeScript files and copy resources (non `.ts`
files) to outDir
- `npm test` - Run all mocha tests
- `npm run lint` - Run `eslint` and `prettier` on source files
3. Override default configurations in your project
- lb-tsc
By default, `lb-tsc` searches your project's root directory for
`tsconfig.build.json` then `tsconfig.json`. If neither of them exists, a
`tsconfig.json` will be created to extend from
`/build/config/tsconfig.common.json`.
To customize the configuration:
- Create `tsconfig.build.json` or `tsconfig.json` in your project's root
directory
```json
{
"$schema": "http://json.schemastore.org/tsconfig",
"extends": "@loopback/build/config/tsconfig.common.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
},
"include": ["src"]
}
```
- Set options explicity for the script
```sh
lb-tsc -p tsconfig.json --target es2017 --outDir dist
```
For more information, see
<https://www.typescriptlang.org/docs/handbook/compiler-options.html>.
- The following un-official compiler options are available:
| Option | Description |
| ------------------ | ------------------------------------------------------------------------------------------------- |
| `--copy-resources` | Copy all non-typescript files from `src` and `test` to `outDir`, preserving their relative paths. |
4. Run builds
```sh
npm run build
```
## Contributions
- [Guidelines](https://github.com/strongloop/loopback-next/blob/master/docs/CONTRIBUTING.md)
- [Join the team](https://github.com/strongloop/loopback-next/issues/110)
## Tests
run `npm test` from the root folder.
## Contributors
See
[all contributors](https://github.com/strongloop/loopback-next/graphs/contributors).
## License
MIT