PromucFlow_constructor/app/shared/Readme.md
Aman Agarwal 3b00508c1e
feat: ast mono repo poc (#15610)
* POC for Shared AST Logic using Yarn Symlinks

* fix: preinstall script for bundling shared packages

* Merge commit

* fix: updated the script to link, unlink the package as shared dep

* fix: updated dependencies

* Add a post-install script and fix yarn.lock file

* Remove commented code

* fix: added verification script, readme, moved scripts to shared

Co-authored-by: Ayangade Adeoluwa <adeoluayangade@yahoo.com>
2022-08-11 20:59:26 +05:30

20 lines
1.4 KiB
Markdown

# Shared Dependencies
We wanted to share common logic with different applications within our repo, so we picked [yarn symlinks](https://classic.yarnpkg.com/en/docs/cli/link) as our approach to tackle this problem. Following are the way in which you can take advantage of the module sharing architecture.
## Creation of a Shared Module
- Create a directory inside `shared` directory with name eg. `abc`
- Inside `package.json` of module, keep the name like `@shared/abc`
- Add a rollup config to generate `package.json` after the module is build
## Installation of Shared Modules
- Add an entry for an application inside `shared-dependencies.json` eg. for `client` there should be an entry `"client": []`
- Add the name of the shared module in the entry of the application in the above file eg. `"client": ["@shared/abc"]`
- If the application does not have any postinstall or preinstall scripts for shared modules then add the two commands described below in the application's (eg. `client`) `package.json` :
`"postinstall": "CURRENT_SCOPE=client node ../shared/install-dependencies.js"`
`"preinstall": "CURRENT_SCOPE=client node ../shared/build-shared-dep.js"`
CURRENT_SCOPE is the environment variable that's being used in the scripts
## Verifying the Installed Shared Modules
- Run `yarn run verify` inside `shared` directory to verify shared dependencies for an application.