JSFoo is a platform for:
- Practitioners to share insights from their work about web application development.
- Learning from peers.
- Understanding perspectives on component architecture, front-end security, performance and emerging trends.
Participate in JSFoo as:
Talks from previous editions of JSFoo are published on hasgeek.tv/jsfoo
The Pune edition will be held on 28 February 2020 at MCCIA, Pune.
Jai Santhosh, Software developer at Microsoft Research
Working with large Monorepos for web developmentA closer look at package management Since there are 100+ highly inter-connected internal npm packages which declare over 2,500 external dependencies, we will briefly take a look at how packages and dependency management. We will discuss the structure of each package in the monorepo and how dependencies are expressed across these packages. The packages contain transpiled TypeScript code and bundles generated using webpack and the modules from these bundles are used across various product endpoints. Handling package dependencies We use yarn workspaces to install our external dependencies and link the Midgard-hosted packages together based on the dependencies expressed in the package.json files. We will use an example with yarn workspaces to handle package dependencies in a sample monorepo. Cross-package orchestration The other major part of managing monorepos is cross-package orchestration. We would want to execute scripts across all the packages easily like build/packaging commands, linting, etc. We will take a look at achieve this using Lerna through the talk. Using Test Apps to validate user behaviour To validate more complex component behaviors, like user interactions, we use test-apps. Test apps are either webpages or native applications which load our bundles to render our components for manual testing. This is probably the second most popular validation workflow, therefore we care a lot about it. Improving “watch” across packages We will also briefly look at how we will manage watch processes for the monorepo-hosted packages. Its also important to discuss the Intellisense performance here. We will go over a sample monorepo structure to explain this in detail.
Open space discussion: Our concerns - as front-end engineers - about privacy of user data?