displays the import size of the package you are importing inside the code editor
This extension will display inline in the editor the size of the imported package. The extension utilizes webpack in order to detect the imported size.
This project includes implementation of:
Enjoy!
We detail the why and how in this blog post: https://citw.dev/posts/import-cost
In this project we use npm workspaces for managing the multiple packages.
In order to start working all you need to do is:
$ git clone [email protected]:wix/import-cost.git
$ npm install
$ code packages/import-cost
$ code packages/vscode-import-cost
Once VSCode workspaces are open:
F5
to run tests in import-cost
F5
to run the vscode-import-cost
extension in debug modeThanks to npm workspaces, we have a symbolic link in the vscode-import-cost
node modules folder to the local import-cost
, which makes applying changes very easy. You can verify that link exists by running the following command:
$ ls -la packages/vscode-import-cost/node_modules | grep import-cost
lrwxr-xr-x 1 shahar staff 17 Aug 6 09:38 import-cost -> ../../import-cost
If anything goes wrong and link does not exist, just run the following commands at the root of this project and npm will sort it out:
$ git clean -xdf
$ npm install
After you make any changes to the import-cost
node module, don't forget to trigger transpilation in order to see those changes when running the vscode-import-cost
extension:
$ npm test
When you are ready to publish a new version of the extension, you first need to publish a new version of import-cost
(unless nothing changed there). This is done by first commiting all your changes, then simply run the following commands:
$ cd packages/import-cost
$ npm version patch | minor | major
$ git commit -a -m "releasing version X.X.X"
$ git push
$ npm publish
Then go ahead and release the extension with almost same steps (except for last one):
$ cd packages/vscode-import-cost
$ npm version patch | minor | major
$ git commit -a -m "releasing version X.X.X"
$ git push
$ vsce publish
Don't forget to update README.md with details of what is new in the released version...