- como será o fluxo completo de implementação e uso dessas libs/pkgs?
- criar boilerplate para criação de libs
- module bundler? (Comparing bundlers: Webpack, Rollup & Parcel)(Why I use Rollup, and not Webpack)
- Compiler
- managing and publishing multiple repository(NPM numbers)
- colocar o packge como private
- Define workspaces
- configurar managing and publishing multiple repository
- Configurar module bundler
- Configurar typescript
- declarar paths. (AWS example)
- Criar cada packages
- Declarar definição do modulo no package
- Install peerDependencies
- test
- implementação
- doc
- configurar build do bundler
- criar boilerplate para criação de libs
- tem um desenho?
si-kit/
├── packages/
│ ├── base/
│ │ ├── hooks/
│ │ │ └── [hook]
│ │ ├── contexts/
│ │ │ └── [context]
│ │ ├── utils/
│ │ │ └── [util]
│ │ ├── package.json
│ │ ├── README.md
│ │ └── tsconfig.json
│ ├── ui/
│ │ ├── Component/
│ │ │ ├── ComponentStyled
│ │ │ ├── ComponentBase
│ │ │ └── ComponentTest
│ │ ├── package.json
│ │ ├── README.md
│ │ └── tsconfig.json
│ └── docs
├── tsconfig.json
├── package.json
└── README.md
- onde faremos o deploy das libs/pkgs?
- como consumiremos as libs/pkgs?
- depende de onde fizer o deploy do /libs/pkgs
- se for npm é o padrão atual de qualquer pacote
- se for pelo github
in the same directory as your package.json file, create or edit an .npmrc file to include a line specifying GitHub Packages URL and the account owner. Replace OWNER with the name of the user or organization account that owns the repository containing your project. @OWNER:registry=https://npm.pkg.github.com
- depende de onde fizer o deploy do /libs/pkgs
- qual é a hierarquia de dependências?
- dentro de cada modulo deve ser instalado como peerDependencies os pacotes compartilhado na raiz
- para demais depenências segue o mesmo fluxo
- o versionamento será individual ou podemos manter a mesma versão para todos o repo (como a AWS fez com o aws-sdk-js-v3)?
- podemos usar um mono repo e usar uma ferramenta de
managing and publishing multiple repository
- podemos usar um mono repo e usar uma ferramenta de
- como vamos testar? as estratégias são diferentes para cada contexto?
- podemos ter teste em contexto global, contexto local de cada modulo e package. Basta definir estrategias e scripts. (Vi abordagens diferentes na AWS e Material UI, por exemplo)