- Build everything and run tests to learn how to do both:
npm run buildnpm run test
Tests won't at first unless you've done a build at least once. Subsequent changes to tests do not need re-builds but changes to the code and then tests need a build to pick up the new code by the tests.
- Make your changes and add a test for them
- Build after you've made your changes
- Run tests as per the above to validate your changes
- Create a pull request
-
Ensure the build runs because the Husky pre-commit hook checks it
npm run checkchecks runs the build, tests, lint and perf testscommitlintchecks the commit message format
If there is a problem you will see it in the pre-commit hook output. In VS Code, this output will be shown in a new file in a new tab if the pre-commit hook fails. If you want to check the commit message without using the VS Code Source Control UI, you can run
echo "feat: my commit message" > npx commitlintdirectly. -
git switch -c your_branch_name(do this in your fork not the main repo) -
git add . -
git commit -m "feat: Adding my change" -
git push -
Go to GitHub and find your fork, open a PR against the upstream from it
The Playground runs off the docs directory.
npm run build:docs is used to build it.
Then, to start the site locally, go to docs and run npm start, then visit
http://localhost:4000/playground.html.
The Playground uses a local built LiquidJS, which is created during npm run build:docs.
To update that, you'll need to run ./bin/build-docs-liquid.sh each time after making changes.
Then refresh the Playground site for the changes to take effect.
If your change can have a performance impact, you can update and run performance cases under benchmark/.
npm run build:cjsto build a CommonJS bundle for the perf test.npm run perf:diffto check whether there's a regression compared againstliquidjs@latest
Further more, benchmark/ contains different cases to check its ops/sec. Useful when debugging perf regressions, to use it:
cd benchmarkgo into benchmark projectnpm ciinstall dependenciesnpm startrun the cases