Files

62 lines
1.5 KiB
Markdown

# Nym Typescript (and Javascript) packages
This directory has shared Typescript (and Javascript) libraries using `yarn workspaces`.
## Why `ts-packages`?
Naming stuff is hard. The `ts-` part means Typescript, because this monorepo also contains Rust crates. So we needed some way to indicate: "put your Typescript here".
Now you know! So, please, put your Typescript here. And your Javascript.
## How does it work?
In the root of this repository is [package.json](../package.json) that specifies an array of globs for packages that are shared:
```
{
"name": "@nymproject/nymsphere",
"version": "1.0.0",
"private": true,
"license": "Apache 2.0",
"workspaces": ["ts-packages/*", "nym-wallet"] <-------
}
```
There are some caveats:
- this only works with `yarn` and not `npm`
- `yarn` creates a single `node_modules` in the root for shared dependencies
- packages that use shared packages, need to be in a path specified in `workspaces`
- local packages take precedence over published packages on `npm`
## Building
From the [root of the repository](../README.md) run:
```
yarn
yarn build
```
This will build all libraries.
Now you can try out [react-webpack-with-theme-example](./react-webpack-with-theme-example) by running:
```
cd ts-packages/react-webpack-with-theme-example
yarn start
```
Our React components have a Storybook in [react-components](./react-components):
```
cd ts-packages/react-components
yarn storybook
```
## Development
Watch mode is available in some packages with `yarn watch`.
See [mui-theme](./mui-theme/README.md) for an example.