Skip to content

Commit dfc67dd

Browse files
authored
Update to mention that npm is an awful piece of software
1 parent cff7b6f commit dfc67dd

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

docs/development/getting-started.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ hide_table_of_contents: true
88

99
These are the instructions for setting up a development environment for TurboWarp itself. This is useful if you want to submit pull requests to us or make your own mod.
1010

11+
:::warning
12+
Heads up. This page is a bit outdated :(
13+
14+
We'll try to get it fixed soon (writing this on Jan 15 2026, did we forget?)
15+
:::
16+
1117
If you just want to develop custom extensions, see [the custom extension documentation](./extensions/introduction.md) instead.
1218

1319
## Dependencies {#dependencies}
@@ -81,6 +87,12 @@ By default TurboWarp generates links like `https://turbowarp.org/editor.html#123
8187

8288
## Linking other packages {#linking}
8389

90+
Linking packages lets you run use your local versions of packages in your other local packages. So you can use your local scratch-vm inside your local scratch-gui. That lets you actually see what your scratch-vm changes do in a real GUI.
91+
92+
We used to recommend using `npm link` to do this. Unfortunately, npm is an awful piece of software that gets worse every update. This command used to work perfectly, but they broke it because of course. It's now better to manually create symlinks yourself in node_modules. (We are amazed how they were able to take a perfectly functional command and make it slow and break if you go more than one level deep)
93+
94+
We need to update this section still to reflect the new recommendations. In the mean time `npm link` does somewhat still work if you only need to go one level deep and are okay with waiting a long time for what should be a single system call.
95+
8496
To develop packages other than scratch-gui, you need to tell npm to use local copies of the package instead of the ones it downloaded from the internet. This is called *linking*. The pattern is:
8597

8698
```bash

0 commit comments

Comments
 (0)