Skip to content

Commit c8a49af

Browse files
update wrangler config docs to include vite plugin (#21137)
* aliasing as example * note when not applicable to vite plugin * fixups * revert notice about upload_source_maps * shorten asset routing summary * some assets updates * update links and env notes * Apply suggestions from code review * update routing summary * Update src/content/docs/workers/static-assets/index.mdx Co-authored-by: James Opstad <[email protected]> * Apply suggestions from code review Co-authored-by: James Opstad <[email protected]> --------- Co-authored-by: James Opstad <[email protected]>
1 parent 7d4de67 commit c8a49af

File tree

7 files changed

+79
-40
lines changed

7 files changed

+79
-40
lines changed

src/content/docs/workers/static-assets/index.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ The **assets directory** specified in your [Wrangler configuration file](/worker
5959

6060
</WranglerConfig>
6161

62+
:::note
63+
If you are using the [Cloudflare Vite plugin](/workers/vite-plugin/), you do not need to specify `assets.directory`. For more information about using static assets with the Vite plugin, refer to the [plugin documentation](/workers/vite-plugin/reference/static-assets/).
64+
:::
65+
6266
By adding an [**assets binding**](/workers/static-assets/binding/#binding), you can directly fetch and serve assets within your Worker code.
6367

6468
```js {13}

src/content/docs/workers/wrangler/commands.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,7 @@ None of the options for this command are required. Also, many can be set in your
515515
- Skip Wrangler's build steps. Particularly useful when using custom builds. Refer to [Bundling](https://developers.cloudflare.com/workers/wrangler/bundling/) for more information.
516516
- `--env` <Type text="string" /> <MetaInfo text="optional" />
517517
- Perform on a specific environment.
518+
<Render file="vite-environments" />
518519
- `--outdir` <Type text="string" /> <MetaInfo text="optional" />
519520
- Path to directory where Wrangler will write the bundled Worker files.
520521
- `--compatibility-date` <Type text="string" /> <MetaInfo text="optional" />
@@ -1415,6 +1416,9 @@ wrangler versions upload [OPTIONS]
14151416
- Add a version message. Accepts empty string.
14161417
- `--name` <Type text="string" /> <MetaInfo text="optional" />
14171418
- Perform on a specific Worker rather than inheriting from the [Wrangler configuration file](/workers/wrangler/configuration/).
1419+
- `--env` <Type text="string" /> <MetaInfo text="optional" />
1420+
- Perform on a specific environment.
1421+
<Render file="vite-environments" />
14181422

14191423
<Render file="wrangler-commands/global-flags" product="workers" />
14201424

src/content/docs/workers/wrangler/configuration.mdx

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ The majority of keys are inheritable, meaning that top-level configuration can b
6161

6262
Further, there are a few keys that can _only_ appear at the top-level.
6363

64+
<Render file="vite-environments" />
65+
6466
## Top-level only keys
6567

6668
Top-level keys apply to the Worker as a whole (and therefore all environments). They cannot be defined within named environments.
@@ -80,6 +82,7 @@ Top-level keys apply to the Worker as a whole (and therefore all environments).
8082
- `site` <Type text="object" /> <MetaInfo text="optional deprecated" />
8183

8284
- See the [Workers Sites](#workers-sites) section below for more information. Cloudflare Pages and Workers Assets is preferred over this approach.
85+
- This is not supported by the [Cloudflare Vite plugin](/workers/vite-plugin/).
8386

8487
## Inheritable keys
8588

@@ -129,6 +132,7 @@ At a minimum, the `name`, `main` and `compatibility_date` keys are required to d
129132
- `tsconfig` <Type text="string" /> <MetaInfo text="optional" />
130133

131134
- Path to a custom `tsconfig`.
135+
- Not applicable if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/).
132136

133137
- `triggers` <Type text="object" /> <MetaInfo text="optional" />
134138

@@ -137,35 +141,42 @@ At a minimum, the `name`, `main` and `compatibility_date` keys are required to d
137141
- `rules` <Type text="Rule" /> <MetaInfo text="optional" />
138142

139143
- An ordered list of rules that define which modules to import, and what type to import them as. You will need to specify rules to use `Text`, `Data` and `CompiledWasm` modules, or when you wish to have a `.js` file be treated as an `ESModule` instead of `CommonJS`.
144+
- Not applicable if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/).
140145

141146
- `build` <Type text="Build" /> <MetaInfo text="optional" />
142147

143148
- Configures a custom build step to be run by Wrangler when building your Worker. Refer to [Custom builds](#custom-builds).
149+
- Not applicable if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/).
144150

145151
- `no_bundle` <Type text="boolean" /> <MetaInfo text="optional" />
146152

147153
- Skip internal build steps and directly deploy your Worker script. You must have a plain JavaScript Worker with no dependencies.
154+
- Not applicable if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/).
148155

149156
- `find_additional_modules` <Type text="boolean" /> <MetaInfo text="optional" />
150157

151158
- If true then Wrangler will traverse the file tree below `base_dir`.
152159
Any files that match `rules` will be included in the deployed Worker.
153160
Defaults to true if `no_bundle` is true, otherwise false.
154161
Can only be used with Module format Workers (not Service Worker format).
162+
- Not applicable if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/).
155163

156164
- `base_dir` <Type text="string" /> <MetaInfo text="optional" />
157165

158166
- The directory in which module "rules" should be evaluated when including additional files (via `find_additional_modules`) into a Worker deployment. Defaults to the directory containing the `main` entry point of the Worker if not specified.
167+
- Not applicable if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/).
159168

160169
- `preserve_file_names` <Type text="boolean" /> <MetaInfo text="optional" />
161170

162171
- Determines whether Wrangler will preserve the file names of additional modules bundled with the Worker.
163172
The default is to prepend filenames with a content hash.
164173
For example, `34de60b44167af5c5a709e62a4e20c4f18c9e3b6-favicon.ico`.
174+
- Not applicable if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/).
165175

166176
- `minify` <Type text="boolean" /> <MetaInfo text="optional" />
167177

168178
- Minify the Worker script before uploading.
179+
- If you're using the [Cloudflare Vite plugin](/workers/vite-plugin/), `minify` is replaced by Vite's [`build.minify`](https://vite.dev/config/build-options.html#build-minify).
169180

170181
- `logpush` <Type text="boolean" /> <MetaInfo text="optional" />
171182

@@ -192,6 +203,7 @@ Non-inheritable keys are configurable at the top-level, but cannot be inherited
192203
- `define` <Type text="Record<string, string>" /> <MetaInfo text="optional" />
193204

194205
- A map of values to substitute when deploying your Worker.
206+
- If you're using the [Cloudflare Vite plugin](/workers/vite-plugin/), `define` is replaced by Vite's [`define`](https://vite.dev/config/shared-options.html#define).
195207

196208
- `vars` <Type text="object" /> <MetaInfo text="optional" />
197209

@@ -372,6 +384,10 @@ head_sampling_rate = 0.1 # 10% of requests are logged
372384

373385
## Custom builds
374386

387+
:::note
388+
Not applicable if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/).
389+
:::
390+
375391
You can configure a custom build step that will be run before your Worker is deployed. Refer to [Custom builds](/workers/wrangler/custom-builds/).
376392

377393
- `command` <Type text="string" /> <MetaInfo text="optional" />
@@ -988,9 +1004,10 @@ You can only configure one collection of assets per Worker.
9881004

9891005
The following options are available under the `assets` key.
9901006

991-
- `directory` <Type text="string" /> <MetaInfo text="required" />
1007+
- `directory` <Type text="string" /> <MetaInfo text="optional" />
9921008

9931009
- Folder of static assets to be served.
1010+
- Not required if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/), which will automatically point to the client build output.
9941011

9951012
- `binding` <Type text="string" /> <MetaInfo text="optional" />
9961013

@@ -1020,6 +1037,10 @@ assets = { directory = "./public", binding = "ASSETS", html_handling = "force-tr
10201037

10211038
## Bundling
10221039

1040+
:::note
1041+
Wrangler bundling is not applicable if you're using the [Cloudflare Vite plugin](/workers/vite-plugin/).
1042+
:::
1043+
10231044
Wrangler can operate in two modes: the default bundling mode and `--no-bundle` mode.
10241045
In bundling mode, Wrangler will traverse all the imports of your code and generate a single JavaScript "entry-point" file.
10251046
Imported source code is "inlined/bundled" into this entry-point file.
@@ -1077,6 +1098,10 @@ See https://developers.cloudflare.com/workers/wrangler/bundling/ for more detail
10771098

10781099
## Local development settings
10791100

1101+
:::note
1102+
If you're using the [Cloudflare Vite plugin](/workers/vite-plugin/), you should use Vite's [server options]](https://vite.dev/config/server-options.html) instead.
1103+
:::
1104+
10801105
You can configure various aspects of local development, such as the local protocol or port.
10811106

10821107
- `ip` <Type text="string" /> <MetaInfo text="optional" />
@@ -1120,6 +1145,10 @@ local_protocol = "http"
11201145

11211146
## Module Aliasing
11221147

1148+
:::note
1149+
If you're using the [Cloudflare Vite plugin](/workers/vite-plugin/), `alias` is replaced Vite's [`resolve.alias`](https://vite.dev/config/shared-options.html#resolve-alias).
1150+
:::
1151+
11231152
You can configure Wrangler to replace all calls to import a particular package with a module of your choice, by configuring the `alias` field:
11241153

11251154
<WranglerConfig>
@@ -1280,6 +1309,8 @@ This section describes a feature that can be implemented by frameworks and other
12801309

12811310
It is unlikely that an application developer will need to use this feature, but it is documented here to help you understand when Wrangler is using a generated configuration rather than the original, user's configuration.
12821311

1312+
For example, when using the [Cloudflare Vite plugin](/workers/vite-plugin/), an output Worker configuration file is generated as part of the build. This is then used for preview and deployment.
1313+
12831314
:::
12841315

12851316
Some framework tools, or custom pre-build processes, generate a modified Wrangler configuration to be used to deploy the Worker code.

src/content/docs/workers/wrangler/environments.mdx

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,52 +5,52 @@ head: []
55
description: Use environments to create different configurations for the same Worker application.
66
---
77

8-
import { WranglerConfig } from "~/components";
8+
import { WranglerConfig, Render, Steps } from "~/components";
99

1010
Wrangler allows you to use environments to create different configurations for the same Worker application. Environments are configured in the Worker's [Wrangler configuration file](/workers/wrangler/configuration/).
11-
There is a default (top-level) environment and you can create named environments that provide environment-specific configuration.
11+
12+
When you create an environment, Cloudflare effectively creates a new Worker with the name `<top-level-name>-<environment-name>`. For example, a Worker project named `my-worker` with an environment `dev` would deploy as a Worker named `my-worker-dev`.
1213

1314
Review the following environments flow:
1415

16+
<Steps>
1517
1. Create a Worker, named `my-worker` for example.
1618
2. Create an environment, for example `dev`, in the Worker's [Wrangler configuration file](/workers/wrangler/configuration/), by adding a `[env.<ENV_NAME>]` section.
1719

18-
<WranglerConfig>
20+
<WranglerConfig>
1921

20-
```json
21-
{
22-
"name": "my-worker",
23-
"env": {
24-
"<ENV_NAME>": {
25-
// environment-specific configuration goes here
26-
}
27-
}
28-
}
29-
```
22+
```json
23+
{
24+
"name": "my-worker",
25+
"env": {
26+
"<ENV_NAME>": {
27+
// environment-specific configuration goes here
28+
}
29+
}
30+
}
31+
```
32+
</WranglerConfig>
3033

31-
</WranglerConfig>
34+
3. You can configure the `dev` environment with different values to the top-level environment. Refer [here](/workers/wrangler/configuration/#environments) for how different options are inherited - or not inherited - between environments.
35+
For example, to set a different route for a Worker in the `dev` environment:
3236

33-
3. You can configure the `dev` environment with different values to the top-level environment. Refer [here](/workers/wrangler/configuration/#environments) for how different options are inherited - or not inherited - between environments.
37+
<WranglerConfig>
3438

35-
For example, to set a different route for a Worker in the `dev` environment:
39+
```toml
40+
name = "your-worker"
41+
route = "example.com"
3642

37-
<WranglerConfig>
43+
[env.dev]
44+
route = "dev.example.com"
45+
```
3846

39-
```toml
40-
name = "your-worker"
41-
route = "example.com"
47+
</WranglerConfig>
4248

43-
[env.dev]
44-
route = "dev.example.com"
45-
```
49+
4. Environments are used with the `--env` or `-e` flag on Wrangler commands. For example, you can develop the Worker in the `dev` environment by running `npx wrangler dev -e=dev`, and deploy it with `npx wrangler deploy -e=dev`.
4650

47-
</WranglerConfig>
48-
4. Environments are used with the `--env` or `-e` flag on Wrangler commands. For example, you can develop the Worker in the `dev` environment by running `npx wrangler dev -e=dev`, and deploy it with `npx wrangler deploy -e=dev`.
51+
<Render file="vite-environments" />
4952

50-
:::note
51-
52-
Cloudflare effectively creates a new Worker for you when you create a Worker with an environment. Wrangler appends the environment name to the top-level name. For example, a Worker project named `my-worker` with an environment `dev` would deploy a Worker named `my-worker-dev`. You must use this name when referencing a Worker in a particular environment, for example in a [service binding](/workers/wrangler/configuration/#service-bindings).
53-
:::
53+
</Steps>
5454

5555
## Non-inheritable keys and environments
5656

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
{}
3+
---
4+
5+
:::note
6+
If you're using the [Cloudflare Vite plugin](/workers/vite-plugin/), you select the environment at dev or build time via the `CLOUDFLARE_ENV` environment variable rather than the `--env` flag. Otherwise, environments are defined in your Worker config file as usual. For more detail on using environments with the Cloudflare Vite plugin, refer to the [plugin documentation](/workers/vite-plugin/reference/cloudflare-environments/).
7+
:::

src/content/partials/workers/workers-assets-routing-summary.mdx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22
{}
33
---
44

5-
When using Workers Assets, Cloudflare will first attempt to serve any static assets which match the incoming request.
5+
By default, Cloudflare first tries to match a request path against a static asset path, which is based on the file structure of the uploaded asset directory. This is either the directory specified by `assets.directory` in your Wrangler config or, in the case of the [Cloudflare Vite plugin](/workers/vite-plugin/), the output directory of the client build. Failing that, we invoke a Worker if one is present. If there is no Worker, or the Worker then uses the asset binding, Cloudflare will fallback to the behaviour set by [`not_found_handling`](/workers/static-assets/routing/#not_found_handling).
66

7-
For example, if you have requests for `/logo.png` and `/blog/hello-world.html` in your assets directory, and make requests for `/logo.png` and `/blog/hello-world`, those files will be served respectively. The [`html_handling`](/workers/static-assets/routing/#html_handling) option allows you to customize the serving of HTML files if you have specific needs around redirects and trailing slashes.
8-
9-
If a request does not match a static asset, Cloudflare will then invoke your Worker script module, if one is present. This can be configured with the [`main`](/workers/wrangler/configuration/#inheritable-keys) property in the [Wrangler configuration file](/workers/wrangler/configuration/).
10-
11-
Finally, if a request does not match any static assets, and either a Worker script module is not present, or from within that Worker script module, the [asset binding](/workers/static-assets/binding/)'s `fetch` method is called (e.g. `env.ASSETS.fetch(request)`), Cloudflare will fall back to evaluating the [`not_found_handling`](/workers/static-assets/routing/#not_found_handling) behavior. By default, it will serve a null-body 404-status response, but this can be configured to instead serve custom HTML 404 pages, or to serve a single-page application (SPA).
12-
13-
At present, there is no way to customize this routing behavior beyond the `html_handling` and `not_found_handling` options. We plan to offer additional configuration controls, such as allowing you to always run the Worker script modules for certain paths, in the future.
7+
Refer to the [routing documentation](/workers/static-assets/routing/#routing-configuration) for more information about how routing works with static assets, and how to customize this behavior.
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
---
22
{}
3-
43
---
54

65
:::caution[Use Workers Static Assets Instead]
76

8-
You should use [Workers Static Assets](/workers/static-assets/) to host full-stack applications instead of Workers Sites. Do not use Workers Sites for new projects.
7+
You should use [Workers Static Assets](/workers/static-assets/) to host full-stack applications instead of Workers Sites. It has been deprecated in Wrangler v4, and the [Cloudflare Vite plugin](/workers/vite-plugin/) does not support Workers Sites. Do not use Workers Sites for new projects.
98
:::

0 commit comments

Comments
 (0)