96 lines
2.0 KiB
Markdown
96 lines
2.0 KiB
Markdown
# XO Stack
|
|
|
|
This is a monorepo project containing multiple packages managed with NPM workspaces.
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
xo/
|
|
├── packages/
|
|
│ ├── primitives/
|
|
│ ├── wallet/
|
|
│ └── vue/
|
|
├── package.json
|
|
└── README.md
|
|
```
|
|
|
|
## Prerequisites
|
|
|
|
- Node.js (version 20.0.0 or later)
|
|
- NPM (version 7 or later, which includes workspaces support)
|
|
|
|
## Installation
|
|
|
|
To install all dependencies for all packages in the monorepo, run the following command from the root directory:
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
This command will install dependencies for the root project and all packages in the `packages/` directory.
|
|
|
|
## Building Packages
|
|
|
|
To build all packages, run the following command from the root directory:
|
|
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
This will execute the build script for each package in the monorepo.
|
|
|
|
To build a specific package, you can use the following command:
|
|
|
|
```bash
|
|
npm run build --workspace=@my-monorepo/<package-name>
|
|
```
|
|
|
|
Replace `<package-name>` with the name of the package you want to build (e.g., primitives, network-wallet, or vue).
|
|
|
|
## Running Tests
|
|
|
|
To run tests for all packages:
|
|
|
|
```bash
|
|
npm test
|
|
```
|
|
|
|
To run tests for a specific package:
|
|
|
|
```bash
|
|
npm test --workspace=@my-monorepo/<package-name>
|
|
```
|
|
|
|
## Development
|
|
|
|
During development, you can use the following command to watch for changes and rebuild packages automatically:
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
## Useful NPM Workspace Commands
|
|
|
|
- List all packages in the workspace:
|
|
```bash
|
|
npm ls -w
|
|
```
|
|
|
|
- Run a command in a specific package:
|
|
```bash
|
|
npm run <command> --workspace=@my-monorepo/<package-name>
|
|
```
|
|
|
|
- Add a dependency to a specific package:
|
|
```bash
|
|
npm install <dependency> --workspace=@my-monorepo/<package-name>
|
|
```
|
|
|
|
## Contributing
|
|
|
|
Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|