Skip to content

mehmet-erim/symlink-manager

Repository files navigation

 Symlink Manager

Symlink Manager easily manage to symbolic link processes of your dependency packages.

symlink-introducing

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

About

Symlink Manager easily manages to symbolic link processes of your dependency packages.

Resources

Stars

Watchers

Forks

Packages

No packages published