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".
Unlink
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: