- public packages for Arno's projects and experiments also for best-practices sharing
- packages shall publish to npm with
@arno/*scope
- use git sub-module to manage this project in the parent project.
git submodule add https://github.com/SurfaceW/arno-packages.git e-studio-base- add pnpm workspace to include the packages
pnpm-workspace.yaml
packages:
- "packages/*"
- "e-studio-base/*"
# exclude packages that are inside test directories
- '!**/test/**'add dependencies to the parent project package.json
{
"dependencies": {
"@arno/client": "workspace:*",
"@arno/server": "workspace:*",
"@arno/shared": "workspace:*",
"@arno/ui": "workspace:*",
}
}node.js>= 18.0.0turbo-repoas monorepo management toolpnpmas package managernext.jsas server-side rendering framework as peer dependency which version is >= 13.5.0typescriptas peer dependency which version is >= 5.2.0
packages/: packagesscripts: scripts for shared packages developmentshared: client and server basic shared packagesclient: client packagesserver: server packagesui: ui packages(react-based components for share)tsconfig: tsconfig for shared packageseslint-config-custom: eslint config for shared packages
use turbo repo to manage monorepo architecture.
pnpm install: install dependenciespnpm run build: build all packagespnpm run lint: lint all packagespnpm run test: test all packagespnpm run publish: publish all packages
WIP
- add
unittest CI for all packages - add publish CI for all packages when commit and merge to
mainbranch - remove specific ui-libs out from the base package such as
antd - upgrade eslint and shared tsconfig to latest version