Symlink Manager
Symlink Manager easily manage to symbolic link processes of your dependency packages.
Installation & Usage
yarn add symlink-manager --dev # or if you are using npm npm install symlink-manager --save-dev
Insert the following line in scripts of your package.json file.
// ... "scripts": "symlink": "symlink" // ...
Symlink-manager will help you for direction.
yarn symlink # or if you are using npm npm run symlink
Command | Description |
---|---|
Link | Creates symbolic link for selected packages |
Unlink | Removes symbolic link for linked packages |
Copy | Copies link folder into node_modules directly without symbolic link |
Symlink-manager supports Angular. (Only supports created with ng generate lib
libraries).
yarn symlink --angular
Symlink-manager supports Yarn.
yarn symlink --yarn
Symlink-manager can take your packages on command.
yarn symlink --packages my-package-1,my-package-2 --no-watch
Symlink-manager supports the CI
yarn symlink copy --angular --all-packages --no-watch --sync --excluded-packages package1,package2
If building order matters, you can pass
--sync
. You can pass--prod
option for production configuration.
yarn symlink --sync
If you are not using Angular, you must add symlink.config.json for your configuration.
symlink.config.json example:
"yarn": true "packages": // required // your main dependency folder path. The folder must have package.json. "libraryFolderPath": "packages/core" // required // this folder for symbolic link. You may enter the same value as libraryFolderPath. // linkFolderPath folder must have package.json. "linkFolderPath": "dist/core" // optional // your build command. "buildCommand": "ng build core" // optional // output -> cd packages/core && ng build core "buildCommandRunPath": "packages/core" // optional // symlink-manager doesn't watch these folders "exclude": "node_modules" "dist"
For more:
See the Angular example project and document
See the React example project and document
Without symlink-manager for Angular
- After 5th step (Check the 5 steps in Angular Example), run
ng build core --watch
- Open new terminal window and go dist/core (
cd dist/core
) - Run
npm link
- Go back to main folder (
cd ../../
) - Run
npm link @symlink/core
Repeat it for every package.
Do not forget, symlink-manager do this automatically. Symlink-manager can create symbolic link a lot of packages in one terminal window