Skip to content

feat: reinstate $app/environment and $env/* for backwards compatiblity#16334

Merged
Rich-Harris merged 4 commits into
version-3from
env-backwards-compat
Jul 16, 2026
Merged

feat: reinstate $app/environment and $env/* for backwards compatiblity#16334
Rich-Harris merged 4 commits into
version-3from
env-backwards-compat

Conversation

@dummdidumm

Copy link
Copy Markdown
Member

It is deprecated on a type level and prints a warning in dev, but it otherwise still usable. That way people have an easier time incrementally updaing to SvelteKit 3, and are no longer blocked on libraries that use the old imports, waiting for them to update to the new imports.

…blity

It is deprecated on a type level and prints a warning in dev, but it otherwise still usable. That way people have an easier time incrementally updaing to SvelteKit 3, and are no longer blocked on libraries that use the old imports, waiting for them to update to the new imports.
@pkg-svelte-dev

pkg-svelte-dev Bot commented Jul 13, 2026

Copy link
Copy Markdown

Install the latest version of @sveltejs/kit from 81b139e:

pnpm add https://pkg.svelte.dev/@sveltejs/kit/c/81b139eb9d16071c4262e14de664a181170034fc

Open in pkg.svelte.dev: https://pkg.svelte.dev/repos/kit/pr/16334

@changeset-bot

changeset-bot Bot commented Jul 13, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 81b139e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@sveltejs/kit Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@svelte-docs-bot

Copy link
Copy Markdown

@teemingc teemingc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll need to update the docs for $app/environment and the $env/ modules too

Comment thread packages/kit/test/apps/basics/test/test.js Outdated

@Rich-Harris Rich-Harris left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Allowing libraries to continue to work makes sense, but I don't think there's any value in continuing to support these modules for first-party code. It makes it harder to find the places in your code that need updating, and means noisier auto-imports:

image

Can we keep things working at a runtime level but still remove these modules as far as TypeScript is concerned?

@teemingc

Copy link
Copy Markdown
Member

Huh. Would've thought the deprecated tag would hide those from the auto-imports

@dummdidumm

Copy link
Copy Markdown
Member Author

Allowing libraries to continue to work makes sense, but I don't think there's any value in continuing to support these modules for first-party code

We could stop generating the exports and just have a declare module "$env/..."

@Rich-Harris

Copy link
Copy Markdown
Member

What's the advantage of doing that rather than not generating the declare module declarations at all?

@dummdidumm

Copy link
Copy Markdown
Member Author

If a library uses the import, and you don't want to ignore TS errors in node_modules, then you're stuck with errors you can't silence

@Rich-Harris

Copy link
Copy Markdown
Member

Isn't that true either way? Is it common to typecheck the contents of node_modules? I was under the impression that was quite difficult

@Rich-Harris
Rich-Harris merged commit 6d1f4f0 into version-3 Jul 16, 2026
21 checks passed
@Rich-Harris
Rich-Harris deleted the env-backwards-compat branch July 16, 2026 02:31
Rich-Harris pushed a commit that referenced this pull request Jul 17, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to version-3, this PR
will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

`version-3` is currently in **pre mode** so this branch has prereleases
rather than normal releases. If you want to exit prereleases, run
`changeset pre exit` on `version-3`.

⚠️⚠️⚠️⚠️⚠️⚠️

# Releases
## @sveltejs/kit@3.0.0-next.9

### Major Changes

- breaking: `handle`'s `resolve` is now typed to always return a
`Promise` ([#16352](#16352))

- breaking: replace the `$lib` alias with `#lib` and remove `files.lib`
config. ([#16360](#16360))

- breaking: disallow cross-origin form submissions without a
`Content-Type` header
([#16347](#16347))

- breaking: Server-only directories (`/server/` in the path) are now
treated as server-only everywhere inside the project (except
`src/routes` and the assets directory)
([#16360](#16360))

- breaking: delegate CORS handling to Vite for static directory requests
during development
([#16357](#16357))

### Minor Changes

- feat: reinstate `$env/static/private`, `$env/dynamic/private`,
`$env/static/public`, `$env/dynamic/public` and `$app/environment` as
deprecated aliases for `$app/env/private` `$app/env/public` and
`$app/env` ([#16334](#16334))

### Patch Changes

- perf: cache the default cookie header parse and avoid allocations in
`cookies.get` ([#16341](#16341))

- fix: avoid client-side code being bundled by Cloudflare Wrangler
([#16364](#16364))

- fix: handle rejected streamed server data after delayed loads
([#16268](#16268))

- fix: enable CSRF protection in builds with a non-production `NODE_ENV`
value ([#16313](#16313))
## @sveltejs/package@3.0.0-next.3

### Minor Changes

- feat: transform import aliases into relative imports in files
([#16360](#16360))
## @sveltejs/adapter-node@6.0.0-next.4

### Patch Changes

- fix: correctly bundle entrypoints on Windows
([#16367](#16367))
- Updated dependencies
[[`c1ee782`](c1ee782),
[`1a1b3ea`](1a1b3ea),
[`6423d98`](6423d98),
[`6d1f4f0`](6d1f4f0),
[`5ca9906`](5ca9906),
[`b148d31`](b148d31),
[`5ca9906`](5ca9906),
[`9f3d9bb`](9f3d9bb),
[`7bfd922`](7bfd922),
[`ffa0e3b`](ffa0e3b)]:
  - @sveltejs/kit@3.0.0-next.9
## @sveltejs/enhanced-img@1.0.0-next.2

### Patch Changes

- chore: replace the `$lib` alias with `#lib` in docs
([#16360](#16360))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants