I might also include a tutorial for bundling with typescript for all of these bundlers. I cant remember how I used to use typescript with the ones mentioned above, but I personally use rollup now with the following configuration:
import { nodeResolve } from "@rollup/plugin-node-resolve";
import typescript from "@rollup/plugin-typescript";
export default {
input: "src/main.ts",
output: {
file: "scripts/main.js",
format: "es",
},
external: [
"@minecraft/debug-utilities",
"@minecraft/server",
"@minecraft/server-admin",
"@minecraft/server-common",
"@minecraft/server-editor",
"@minecraft/server-editor-bindings",
"@minecraft/server-gametest",
"@minecraft/server-net",
"@minecraft/server-ui",
],
plugins: [nodeResolve(), typescript()],
};
required dependencies:
npm i -D rimraf tslib typescript rollup @rollup/plugin-node-resolve @rollup/plugin-typescript
scripts:
"scripts": {
"build": "rimraf scripts && rollup --config rollup.config.mjs",
"build-watch": "rimraf scripts && rollup --config rollup.config.mjs --watch"
}