How to use own fork of `@bigbluebutton/tldraw`

35 views
Skip to first unread message

Piszczu

unread,
Oct 29, 2025, 8:45:26 AM (8 days ago) Oct 29
to BigBlueButton-dev
Hi, 
I want to use my own fork of `@bigbluebutton/tldraw` to add my own custom whiteboard shapes. The first problem that I encoountered is that when I forked the repoitory (https://github.com/bigbluebutton/tldraw/tree/main) and I tried to publish it under my own namespace, I've got an error:

```
PS D:\git\tldraw> yarn workspace @piszczj/utils npm publish
➤ YN0036: Calling the "prepack" lifecycle script
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT lazyrepo 0.0.0-alpha.27
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT -----------------------
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT Loaded config file: ../../lazy.config.ts
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT refresh-assets::<rootDir> input manifest: ../../.lazy/refresh-assets/manifest.tsv
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT refresh-assets::<rootDir> output log: ../../.lazy/refresh-assets/output.log
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT refresh-assets::<rootDir> ✔ cache hit ⚡️ in 0.01s
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT build-types::<rootDir> cache miss, no previous manifest found
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT build-types::<rootDir> RUN tsx D:/git/tldraw/scripts/typecheck.ts in ../..
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT build-types::<rootDir> Typechecking files: []
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir> node:internal/child_process:1124
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>     result.error = new ErrnoException(result.error, 'spawnSync ' + options.file);
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>                    ^
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir> <ref *1> Error: spawnSync D:\git\tldraw\node_modules\.bin\tsc ENOENT
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>     at Object.spawnSync (node:internal/child_process:1124:20)
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>     at spawnSync (node:child_process:877:24)
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>     at execFileSync (node:child_process:920:15)
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>     at main (D:\git\tldraw\scripts\typecheck.ts:22:2) {
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   errno: -4058,
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   code: 'ENOENT',
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   syscall: 'spawnSync D:\\git\\tldraw\\node_modules\\.bin\\tsc',
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   path: 'D:\\git\\tldraw\\node_modules\\.bin\\tsc',
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   spawnargs: [ '--build' ],
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   error: [Circular *1],
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   status: null,
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   signal: null,
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   output: null,
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   pid: 0,
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   stdout: null,
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>   stderr: null
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir> }
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir>
build-types::<rootDir> s@workspace:packages/utils STDOUT build-types::<rootDir> Node.js v20.17.0
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT build-types::<rootDir>  ERROR OUTPUT
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT Typechecking files: []
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT node:internal/child_process:1124
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT     result.error = new ErrnoException(result.error, 'spawnSync ' + options.file);
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT                    ^
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT <ref *1> Error: spawnSync D:\git\tldraw\node_modules\.bin\tsc ENOENT
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT     at Object.spawnSync (node:internal/child_process:1124:20)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT     at spawnSync (node:child_process:877:24)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT     at execFileSync (node:child_process:920:15)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT     at main (D:\git\tldraw\scripts\typecheck.ts:22:2) {
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   errno: -4058,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   code: 'ENOENT',
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   syscall: 'spawnSync D:\\git\\tldraw\\node_modules\\.bin\\tsc',
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   path: 'D:\\git\\tldraw\\node_modules\\.bin\\tsc',
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   spawnargs: [ '--build' ],
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   error: [Circular *1],
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   status: null,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   signal: null,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   output: null,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   pid: 0,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   stdout: null,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT   stderr: null
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT }
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT Node.js v20.17.0
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT build-types::<rootDir> ∙ ERROR ∙ failed
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT Failed tasks: build-types::<rootDir>
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT      Tasks:  1 successful, 1 failed, 4 total
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT     Cached:  1/4 cached
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT       Time:  0.42s
➤ YN0000: @piszczj/utils@workspace:packages/utils STDOUT
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR node:internal/errors:984
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR   const err = new Error(message);
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR               ^
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR Error: Command failed: yarn run -T lazy build
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at genericNodeError (node:internal/errors:984:15)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at wrappedFn (node:internal/errors:538:14)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at checkExecSyncError (node:child_process:891:11)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at execSync (node:child_process:963:15)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at preparePackage (D:\git\tldraw\scripts\prepack.ts:15:2)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at <anonymous> (D:\git\tldraw\scripts\prepack.ts:59:9)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at path (D:\git\tldraw\scripts\prepack.ts:62:2)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at Object.<anonymous> (D:\git\tldraw\scripts\prepack.ts:63:1)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at Module._compile (node:internal/modules/cjs/loader:1469:14)
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR     at Object.transformer (D:\git\tldraw\node_modules\tsx\dist\register-C1urN2EO.cjs:2:1122) {
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR   status: 1,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR   signal: null,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR   output: [ null, null, null ],
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR   pid: 40708,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR   stdout: null,
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR   stderr: null
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR }
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR
➤ YN0000: @piszczj/utils@workspace:packages/utils STDERR Node.js v20.17.0
```


Could someone guide what should I change to fix that? I replace all `@bigbleubutton` appearances in `name` tag in `package.json` but I cant fix above error :( Any guide how to do this?

Marcel Hellkamp

unread,
Oct 29, 2025, 5:02:25 PM (8 days ago) Oct 29
to bigblueb...@googlegroups.com
Just a guess, but it looks like you are trying to build it on windows,
and the D:\git\tldraw\node_modules\.bin\tsc executable is either missing
or does not support (your) windows.

Am 29.10.25 um 13:45 schrieb Piszczu:
> Hi,
> I want to use my own fork of `@bigbluebutton/tldraw` to add my own
> custom whiteboard shapes. The first problem that I encoountered is
> that when I forked the repoitory
> (https://github.com/bigbluebutton/tldraw/tree/main) and I tried to
> publish it under my own namespace, I've got an error:
>
> ```
> build-types::<rootDir> s@workspace:packages/utils STDOUT
> build-types::<rootDir> <ref *1> Error: spawnSync
> D:\git\tldraw\node_modules\.bin\tsc ENOENT
> build-types::<rootDir> s@workspace:packages/utils STDOUT
> build-types::<rootDir>     at Object.spawnSync
> (node:internal/child_process:1124:20)
> build-types::<rootDir> s@workspace:packages/utils STDOUT
> build-types::<rootDir>     at spawnSync (node:child_process:877:24)
> build-types::<rootDir> s@workspace:packages/utils STDOUT
> build-types::<rootDir>     at execFileSync (node:child_process:920:15)
> build-types::<rootDir> s@workspace:packages/utils STDOUT
> build-types::<rootDir>     at main
> (D:\git\tldraw\scripts\typecheck.ts:22:2) {
> build-types::<rootDir> s@workspace:packages/utils STDOUT
> build-types::<rootDir>   errno: -4058,
> build-types::<rootDir> s@workspace:packages/utils STDOUT
> build-types::<rootDir>   code: 'D',
> ```

Piszczu

unread,
Oct 29, 2025, 5:12:30 PM (8 days ago) Oct 29
to BigBlueButton-dev
Yes I'm building on windows, I tried to install tsc and many more solutions using google and chat gpt but nothing helped :( Does it mean that I can't do this on windows? I never had a need to publish package but `npm publish` works for test repository I made but I guess this `@bigbluebutton/tldraw` packages are more advanced. Any ideas what to do? 

Jean Pluzo

unread,
Oct 30, 2025, 2:46:19 AM (7 days ago) Oct 30
to BigBlueButton-dev
Hi,

not that it's not possible, but most stuff regarding building, configuring, customizing, etc. is done with or under linux. You're going to hit a serious roadblock if you keep trying to do this under windows.
I've also tried doing similar stuff but had to give up and change to linux. This was long time ago though.

Regards,

J.

Piszczu

unread,
Oct 31, 2025, 7:25:29 PM (6 days ago) Oct 31
to BigBlueButton-dev
OK I've used VM and everything works fine there :) I have one more question regarding development of the main bbb project (html5-client specifically). I have a production server and I noticed that if I start the development there, then every change in the code is respected on the meetings in that server. I guess that is intended and I can't develop on the same machine that I use in production? 
Reply all
Reply to author
Forward
0 new messages