https://github.com/zheeeng/hwd
https://github.com/zheeeng/hwd
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/zheeeng/hwd
- Owner: zheeeng
- Created: 2021-09-01T12:25:50.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-09-30T09:03:42.000Z (over 4 years ago)
- Last Synced: 2025-01-24T12:45:56.819Z (over 1 year ago)
- Language: JavaScript
- Size: 23.4 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# hwd
Create for pnpm monorepo project. It configs the resolution strategy by using [exports sugar](https://nodejs.org/api/packages.html#packages_exports_sugar).
You can import the dependent modules in other workspaces, i.e. `import { foo } from '@monorepo/foo/shared/bar'`. Node(v12.11.0+) and many bundlers `webpack`, `rollup`, `vite` has already support this feature for resolving the correct package `bar` in the `node_modules` of `@monorepo/foo`.
By default, the internal workspace is recognized by the pnpm style package version `workspace: *`
## Usage
```shell
$: pnpx hwd -h
hwd(hoistWorkspaceDependencies): hoist workspace dependencies to the exports field of package.json
-h print the help message.
-s specify the shared folder alias, default to 'shared'.
-n specify the node_modules folder alias, default to 'node_modules'.
-w specify the internal workspace package mark, default to the pnpm specification 'workspace', e.g. '"foo": "workspace:*"'
-c specify the package root, default to the current work directory.
```
## How to configure Typescript declaration?
Configure the `path` field of the root `tsconfig.json`:
```json
{
"paths": {
"@monorepo/foo/shared/*": ["./packages/foo/node_modules/*", "./packages/foo/node_modules/@types/*"]
}
}
```