diff options
author | 2023-09-19 04:32:45 -0700 | |
---|---|---|
committer | 2023-09-19 04:32:45 -0700 | |
commit | 8ca691693f9972096196b2b15b49b2ca2dfbb639 (patch) | |
tree | 222cdc88cbac2ad468cb5e51d66d1987e6aa2f3d | |
parent | 4b5dcc8a6a77980e16dd48bd52821918d140700c (diff) | |
download | bun-8ca691693f9972096196b2b15b49b2ca2dfbb639.tar.gz bun-8ca691693f9972096196b2b15b49b2ca2dfbb639.tar.zst bun-8ca691693f9972096196b2b15b49b2ca2dfbb639.zip |
Delete extremely out of date docs
-rw-r--r-- | docs/dev/frameworks.md | 151 | ||||
-rw-r--r-- | docs/dev/nextjs.md | 33 |
2 files changed, 0 insertions, 184 deletions
diff --git a/docs/dev/frameworks.md b/docs/dev/frameworks.md deleted file mode 100644 index 9af7fc45b..000000000 --- a/docs/dev/frameworks.md +++ /dev/null @@ -1,151 +0,0 @@ -{% callout %} -**Warning** — This will soon have breaking changes. It was designed when Bun was mostly a dev server and not a JavaScript runtime. -{% /callout %} - -Frameworks preconfigure Bun to enable developers to use Bun with their existing tooling. - -Frameworks are configured via the `framework` object in the `package.json` of the framework (not in the application’s `package.json`): - -Here is an example: - -```json -{ - "name": "bun-framework-next", - "version": "0.0.0-18", - "description": "", - "framework": { - "displayName": "Next.js", - "static": "public", - "assetPrefix": "_next/", - "router": { - "dir": ["pages", "src/pages"], - "extensions": [".js", ".ts", ".tsx", ".jsx"] - }, - "css": "onimportcss", - "development": { - "client": "client.development.tsx", - "fallback": "fallback.development.tsx", - "server": "server.development.tsx", - "css": "onimportcss", - "define": { - "client": { - ".env": "NEXT_PUBLIC_", - "defaults": { - "process.env.__NEXT_TRAILING_SLASH": "false", - "process.env.NODE_ENV": "\"development\"", - "process.env.__NEXT_ROUTER_BASEPATH": "''", - "process.env.__NEXT_SCROLL_RESTORATION": "false", - "process.env.__NEXT_I18N_SUPPORT": "false", - "process.env.__NEXT_HAS_REWRITES": "false", - "process.env.__NEXT_ANALYTICS_ID": "null", - "process.env.__NEXT_OPTIMIZE_CSS": "false", - "process.env.__NEXT_CROSS_ORIGIN": "''", - "process.env.__NEXT_STRICT_MODE": "false", - "process.env.__NEXT_IMAGE_OPTS": "null" - } - }, - "server": { - ".env": "NEXT_", - "defaults": { - "process.env.__NEXT_TRAILING_SLASH": "false", - "process.env.__NEXT_OPTIMIZE_FONTS": "false", - "process.env.NODE_ENV": "\"development\"", - "process.env.__NEXT_OPTIMIZE_IMAGES": "false", - "process.env.__NEXT_OPTIMIZE_CSS": "false", - "process.env.__NEXT_ROUTER_BASEPATH": "''", - "process.env.__NEXT_SCROLL_RESTORATION": "false", - "process.env.__NEXT_I18N_SUPPORT": "false", - "process.env.__NEXT_HAS_REWRITES": "false", - "process.env.__NEXT_ANALYTICS_ID": "null", - "process.env.__NEXT_CROSS_ORIGIN": "''", - "process.env.__NEXT_STRICT_MODE": "false", - "process.env.__NEXT_IMAGE_OPTS": "null", - "global": "globalThis", - "window": "undefined" - } - } - } - } - } -} -``` - -Here are type definitions: - -```ts -type Framework = Environment & { - // This changes what’s printed in the console on load - displayName?: string; - - // This allows a prefix to be added (and ignored) to requests. - // Useful for integrating an existing framework that expects internal routes to have a prefix - // e.g. "_next" - assetPrefix?: string; - - development?: Environment; - production?: Environment; - - // The directory used for serving unmodified assets like fonts and images - // Defaults to "public" if exists, else "static", else disabled. - static?: string; - - // "onimportcss" disables the automatic "onimportcss" feature - // If the framework does routing, you may want to handle CSS manually - // "facade" removes CSS imports from JavaScript files, - // and replaces an imported object with a proxy that mimics CSS module support without doing any class renaming. - css?: "onimportcss" | "facade"; - - // Bun's filesystem router - router?: Router; -}; - -type Define = { - // By passing ".env", Bun will automatically load .env.local, .env.development, and .env if exists in the project root - // (in addition to the processes’ environment variables) - // When "*", all environment variables will be automatically injected into the JavaScript loader - // When a string like "NEXT_PUBLIC_", only environment variables starting with that prefix will be injected - - ".env": string | "*"; - - // These environment variables will be injected into the JavaScript loader - // These are the equivalent of Webpack’s resolve.alias and esbuild’s --define. - // Values are parsed as JSON, so they must be valid JSON. The only exception is '' is a valid string, to simplify writing stringified JSON in JSON. - // If not set, `process.env.NODE_ENV` will be transformed into "development". - "defaults": Record<string, string>; -}; - -type Environment = { - // This is a wrapper for the client-side entry point for a route. - // This allows frameworks to run initialization code on pages. - client: string; - // This is a wrapper for the server-side entry point for a route. - // This allows frameworks to run initialization code on pages. - server: string; - // This runs when "server" code fails to load due to an exception. - fallback: string; - - // This is how environment variables and .env is configured. - define?: Define; -}; - -// Bun's filesystem router -// Currently, Bun supports pages by either an absolute match or a parameter match. -// pages/index.tsx will be executed on navigation to "/" and "/index" -// pages/posts/[id].tsx will be executed on navigation to "/posts/123" -// Routes & parameters are automatically passed to `fallback` and `server`. -type Router = { - // This determines the folder to look for pages - dir: string[]; - - // These are the allowed file extensions for pages. - extensions?: string[]; -}; -``` - -To use a framework, you pass `bun bun --use package-name`. - -Your framework’s `package.json` `name` should start with `bun-framework-`. This is so that people can type something like `bun bun --use next` and it will check `bun-framework-next` first. This is similar to how Babel plugins tend to start with `babel-plugin-`. - -For developing frameworks, you can also do `bun bun --use ./relative-path-to-framework`. - -If you’re interested in adding a framework integration, please reach out. There’s a lot here, and it’s not entirely documented yet. diff --git a/docs/dev/nextjs.md b/docs/dev/nextjs.md deleted file mode 100644 index 92849c989..000000000 --- a/docs/dev/nextjs.md +++ /dev/null @@ -1,33 +0,0 @@ -To create a new Next.js app with bun: - -```bash -$ bun create next ./app -$ cd app -$ bun dev # start dev server -``` - -To use an existing Next.js app with bun: - -```bash -$ bun add bun-framework-next -$ echo "framework = 'next'" > bunfig.toml -$ bun bun # bundle dependencies -$ bun dev # start dev server -``` - -Many of Next.js’ features are supported, but not all. - -Here’s what doesn’t work yet: - -- `getStaticPaths` -- same-origin `fetch` inside of `getStaticProps` or `getServerSideProps` -- locales, zones, `assetPrefix` (workaround: change `--origin \"http://localhost:3000/assetPrefixInhere\"`) -- `next/image` is polyfilled to a regular `<img src>` tag. -- `proxy` and anything else in `next.config.js` -- API routes, middleware (middleware is easier to support, though! Similar SSR API) -- styled-jsx (technically not Next.js, but often used with it) -- React Server Components - -When using Next.js, Bun automatically reads configuration from `.env.local`, `.env.development` and `.env` (in that order). `process.env.NEXT_PUBLIC_` and `process.env.NEXT_` automatically are replaced via `--define`. - -Currently, any time you import new dependencies from `node_modules`, you will need to re-run `bun bun --use next`. This will eventually be automatic. |