Skip to content

Latest commit

 

History

History
126 lines (91 loc) · 1.87 KB

CONTRIBUTING.md

File metadata and controls

126 lines (91 loc) · 1.87 KB

Contributing to umi

Set up

Install dev deps after git clone the repo.

# npm is not allowed.
$ yarn

Link umi globally.

$ cd packages/umi
$ yarn link
$ cd -

Try the umi cli.

$ yarn build
$ umi -v
[email protected]@local

Build

Transform with babel and rollup.

$ yarn build

# Build and monitor file changes
$ yarn build --watch

# Build specified package only
$ PACKAGE=core yarn build --watch

Test

$ yarn test

# Test specified file and watch
$ yarn test getMockData.test.js -w

# Test specified package
$ yarn test --package core

# Generate coverage
$ yarn test --coverage

Release

$ npm run release
$ npm run release -- --publish-only
$ npm run release -- --skip-git-status-check
$ npm run release -- --skip-build
$ npm run release -- --otp

Create new package

Such as creating package foo.

$ mkdir -p packages/foo
$ yarn bootstrap

Then you will find the README.md and package.json is generated in packages/foo.

$ tree packages/foo
packages/foo
├── README.md
└── package.json

Upgrade dependencies

$ yarn update:deps

Docs

# add doc
$ yarn docs add docs/routing --title Routing

Examples

Umi 3 examples in examples/* directory

Benchmarks

if you want to add a benchmark, you can add examples/*/benchmark.js like this:

// examples/ssr-normal/benchmark.js
module.exports = (suite) => {
  // add tests
  suite
    // your logic
    .add('ssr#normal /', )
    // your logic
    .add('ssr#normal#stream /');
};

and run yarn benchmark to see the result:

$ node scripts/benchmarks.js
☐  pending   building .../examples/ssr-normal
☒  complete  success build .../examples/ssr-normal
ssr#normal / x 2,400 ops/sec ±2.08% (76 runs sampled)
ssr#normal#stream / x 4,026 ops/sec ±1.45% (50 runs sampled)