Local Development

    VuePress is using a combo with Yarn workspaces and .

    Init packages

    will use hoisting. What does it mean for you ?

    It will regroup all dependencies in the workspace root and link all packages.

    Check the link by running the following command:

    You will all symlinks

    WARNING

    You have to take care to declare all dependencies inside subFolders package.json. When publish the lib if dependencies from a package is not declare it will just not work.

    There is a special package you should have a look is @vuepress/shared-utils that are in typescript.

    After install everything it will run yarn tsc. This command will tell to @vuepress/shared-utils workspace to compile his js.

    WARNING

    From here if you are making change inside this package you will have torun yarn tsc all the time or run in separate shell yarn run tsc -w. This will re run tsc at any change from shared-utils

    Good from here you have everything ready. You need to link VuePress to your project.

    You will have something like this: success Registered "vuepress".

    It will link the package VuePress from . You will have access to VuePress cli and packages.

    Now go to your project and run yarn link vuepress.

    You should have it success Using linked package for "vuepress".

    You may want to unlink everything. For it in the workspace root folder. Run

    Now you can run yarn unlink vuepress into your project folder.

    If everything work properly you should have an error telling you there is no package found called vuepress, if you run in you project folder.

    You will maybe find some difficulty with link. If you encounter something like There's already a package called "vuepress" registered.You already have VuePress registered:

    • If you already link VuePress from Link. It’s totally fine. If you make changes because it is symlink you dont have to re run something. You will have to rerun yarn tsc if you update shared-utils package. Nothing more

    More

    You will have interesting commands available:

    • yarn packages:list will list you every packages present and their versions More…
    • will tell you which package will be affect by the next lerna publish / version
    • yarn packages:diff will show you all diff from last release More…