Scratch Blocks is a library for building creative computing interfaces.
scratch-blocks is a library to create visual programming environment. It's used in block editor on Scratch. It's also fork of Blockly.
However, Scratch Team forked Blockly in 2016^when_fork. Currently, there are ESM and most of developers use it. ESM is released 2015, so Blockly which was in 2016 hadn't used ESM, used Google Closure Library. After that, Blockly migrated to ESM, but Scratch Team didn't migrate to ESM. Google Closure Library is a very old architecture. It changes global namespace. And it's difficult to use it with Vite. So we needed to get Scratch Blocks which uses ESM, but Scratch Team is conservative and we think Scratch Team won't migrate and accept PR.
Then we forked Scratch Blocks. It is patched to migrate to ESM. Scratch Blocks can't work with Vite, in contrast it works with Vite!
The package is published in JSR. You can install this with npm, yarn, pnpm, Deno, Bun, and others.
npx jsr add @evex/scratch-blocks # npm yarn dlx jsr add @evex/scratch-blocks # yarn pnpm dlx jsr add @evex/scratch-blocks # pnpm deno add jsr:@evex/scratch-blocks # Deno bunx jsr add @evex/scratch-blocks # Bun
Or, you can directly use in browser with esm.sh: https://esm.sh/jsr/@evex/scratch-blocks
.
To import API,
import Blockly from '@evex/scratch-blocks' // Or, with esm.sh import Blockly from 'https://esm.sh/jsr/@evex/scratch-blocks'
Add Package
deno add jsr:@evex/scratch-blocks
Import symbol
import * as scratch_blocks from "@evex/scratch-blocks";
---- OR ----
Import directly with a jsr specifier
import * as scratch_blocks from "jsr:@evex/scratch-blocks";
Add Package
npx jsr add @evex/scratch-blocks
Import symbol
import * as scratch_blocks from "@evex/scratch-blocks";
Add Package
yarn dlx jsr add @evex/scratch-blocks
Import symbol
import * as scratch_blocks from "@evex/scratch-blocks";
Add Package
pnpm dlx jsr add @evex/scratch-blocks
Import symbol
import * as scratch_blocks from "@evex/scratch-blocks";
Add Package
bunx jsr add @evex/scratch-blocks
Import symbol
import * as scratch_blocks from "@evex/scratch-blocks";