Large packs contain lengthy characters, unnecessary whitespaces, and uncompressed files, scripts, and assets. Downloading these packs would be a pain for the users due to slow internet issues. SuitcaseJS fixes this by making it compact as much as possible, reducing the bandwidth need to download a specific pack and gives micro-optimizations vs. the original pack.
- NodeJS v18 or above. v22 and above recommeded for faster compilation.
- Any Javascript package manager such as NPM, PNPM Yarn, Bun, etc.
- A fully functional computer of course!
npm i -g suitcasejs
You can exclude argument -g
if you are willing to compile by API or by npx
.
This is an example on how to compile your pack.
sjs compile -i ./packs/ -o ./out.mcpack -c ./.suitcaserc
You can use relative file paths or either the full path to define where the directory or file will be.
Argument -i
defines the directory path of the pack is supposed to be.
Argument -o
is where the output of the compiled pack will appear.
Argument -c
defines the config path, although it is optional. The CLI will automatically read the config file with the name .suitcaserc
, generated by running sjs init
. If there are no config file, then it will use a default one.
import { Suitcase } from "suitcasejs";
const pack = await new Suitcase("./packs/")
.readConfig() // Will read ".suitcaserc" if available or the default config.
.compile("./out.mcpack");
console.log(await pack.getStats()); // returns object stats before and after compilation.
Check out CONTRIBUTING.md for more information to contribute in this project.