aboutsummaryrefslogtreecommitdiff
path: root/docs/runtime/loaders.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/runtime/loaders.md')
-rw-r--r--docs/runtime/loaders.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/docs/runtime/loaders.md b/docs/runtime/loaders.md
new file mode 100644
index 000000000..c7977534c
--- /dev/null
+++ b/docs/runtime/loaders.md
@@ -0,0 +1,28 @@
+A loader determines how to map imports & file extensions to transforms and output.
+
+Currently, Bun implements the following loaders:
+
+| Input | Loader | Output |
+| ----- | ----------------------------- | ------ |
+| .js | JSX + JavaScript | .js |
+| .jsx | JSX + JavaScript | .js |
+| .ts | TypeScript + JavaScript | .js |
+| .tsx | TypeScript + JSX + JavaScript | .js |
+| .mjs | JavaScript | .js |
+| .cjs | JavaScript | .js |
+| .mts | TypeScript | .js |
+| .cts | TypeScript | .js |
+| .toml | TOML | .js |
+| .css | CSS | .css |
+| .env | Env | N/A |
+| .\* | file | string |
+
+Everything else is treated as `file`. `file` replaces the import with a URL (or a path).
+
+You can configure which loaders map to which extensions by passing `--loaders` to `bun`. For example:
+
+```sh
+$ bun --loader=.js:js
+```
+
+This will disable JSX transforms for `.js` files.