UNPKG

2.93 kBMarkdownView Raw
1# React Components Powered by Digituz
2
3This repository houses React Components provided by Digituz. All components are self-contained as distinct NPM packages and the orchestration of these packages is handled by [`@digituz/monorepo`](https://github.com/Digituz/monorepo).
4
5One of the main goals of this project is to provide React components with as few dependencies as possible.
6
7For the moment, this monorepo contains the following components:
8
9- [`Button`](./src/Button)
10- [`Header`](./src/Header)
11- [`Input`](./src/Input)
12- [`InputLabel`](./src/InputLabel)
13- [`Panel`](./src/Panel)
14
15## Creating New Components
16
17There is a script on `./src/create-component.js` file that takes as an argument the name of the component and create boilerplate code and files to it. To use it, go to `./src` and issue this:
18
19```bash
20node create-component MyComponentName
21```
22
23## Releasing New Versions
24
25This section is divided into two parts. First, there will be a subsection that explains how to use `@digituz/monorepo` to release new versions. After that, there will be a subsection about Travis CI.
26
27### Digituz Monorepo
28
29As this project uses `@digituz/monorepo` to orchestrate multiple NPM packages, this subsection shows how to use some `monorepo` commands.
30
31```bash
32# monorepo is available at the src directory
33cd src
34
35# test all packages
36monorepo test
37
38# test a single package
39monorepo test -p Button
40
41# run a script on a single package
42monorepo runScript -r processCss -p Input
43
44# bump minor version
45monorepo bump -b minor
46```
47
48The only command necessary to release new versions is the last one, `monorepo bump -b minor`. After executing it, you will see that there is a new Git tag available. Then, you will have to push it to Travis so this tool knows that it must publish new versions.
49
50The command to update the Git repository and, consequently, to make Travis trigger a release is:
51
52```bash
53git push origin master --tags
54```
55
56### Travis CI
57
58The [`.travis.yml`](./.travis.yml) file contains an encrypted `$NPM_TOKEN` environment variable in the `env.global.secure` property. To publish to NPM, Travis must have a valid token. That is, you **must** have NPM logged in on an environment. If you issue `npm logout`, NPM removes the token from your account and, as such, this becomes an invalid token.
59
60So, if this happens, you need to `npm login` again in some environment (like you development machine). Then, looking in your `~/.npmrc` file, you will see an entry that looks something like this:
61
62```bash
63//registry.mycompany.com/:_authToken=[my-secret-token]
64```
65
66Copy whatever you find in the place of `[my-secret-token]`, and use it with the following command:
67
68```bash
69travis encrypt NPM_TOKEN=[my-secret-token] --add env.global
70```
71
72This will create a new `env.global.secure`. Note that it is better to remove the previous `env.global.secure` property, as it is not valid anymore and that it needs to be replaced by the new one.