[GH-ISSUE #69] Cannot find package '$app' (svelte-kit) #16743

Closed
opened 2026-04-15 14:42:36 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @nevthereal on GitHub (Oct 2, 2024).
Original GitHub issue: https://github.com/better-auth/better-auth/issues/69

Currently, if I want to run my sveltekit aplication using better-auth, I get this error:

Error [ERR_MODULE_NOT_FOUND]: Cannot find package '$app' imported from /Users/username/project/node_modules/.pnpm/better-auth@0.2.8-beta.1_@babel+core@7.25.2_react@18.3.1_solid-js@1.9.1_vue@3.5.10_typescript@5.6.2_/node_modules/better-auth/dist/svelte-kit.js
    at packageResolve (node:internal/modules/esm/resolve:844:9)
    at moduleResolve (node:internal/modules/esm/resolve:901:20)
    at defaultResolve (node:internal/modules/esm/resolve:1121:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:396:12)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:365:25)
    at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:240:38)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:85:39)
    at link (node:internal/modules/esm/module_job:84:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

Specifically, this file is the problem

import { building } from '$app/environment'; // this is the bad line

// src/integrations/svelte-kit.ts
var toSvelteKitHandler = (auth) => {
  return (event) => auth.handler(event.request);
};
var svelteKitHandler = ({
  auth,
  event,
  resolve
}) => {
  if (building) { // the import is used here
    return resolve(event);
  }
  const { request, url } = event;
  if (isAuthPath(url.toString(), auth.options)) {
    return auth.handler(request);
  }
  return resolve(event);
};
function isAuthPath(url, options) {
  const _url = new URL(url);
  const baseURL = new URL(options.baseURL || `${_url.origin}/api/auth`);
  if (_url.origin !== baseURL.origin) return false;
  if (!_url.pathname.startsWith(
    baseURL.pathname.endsWith("/") ? baseURL.pathname : `${baseURL.pathname}/`
  ))
    return false;
  return true;
}

export { isAuthPath, svelteKitHandler, toSvelteKitHandler };

Here is the repo: https://github.com/nevthereal/better-auth-testing

I am using pnpm@9.9.0.
I also saw this post on the discord under the threads in the #bug-reports channel.

Originally created by @nevthereal on GitHub (Oct 2, 2024). Original GitHub issue: https://github.com/better-auth/better-auth/issues/69 Currently, if I want to run my sveltekit aplication using better-auth, I get this error: ``` Error [ERR_MODULE_NOT_FOUND]: Cannot find package '$app' imported from /Users/username/project/node_modules/.pnpm/better-auth@0.2.8-beta.1_@babel+core@7.25.2_react@18.3.1_solid-js@1.9.1_vue@3.5.10_typescript@5.6.2_/node_modules/better-auth/dist/svelte-kit.js at packageResolve (node:internal/modules/esm/resolve:844:9) at moduleResolve (node:internal/modules/esm/resolve:901:20) at defaultResolve (node:internal/modules/esm/resolve:1121:11) at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:396:12) at ModuleLoader.resolve (node:internal/modules/esm/loader:365:25) at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:240:38) at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:85:39) at link (node:internal/modules/esm/module_job:84:36) { code: 'ERR_MODULE_NOT_FOUND' } ``` Specifically, this file is the problem ```typescript import { building } from '$app/environment'; // this is the bad line // src/integrations/svelte-kit.ts var toSvelteKitHandler = (auth) => { return (event) => auth.handler(event.request); }; var svelteKitHandler = ({ auth, event, resolve }) => { if (building) { // the import is used here return resolve(event); } const { request, url } = event; if (isAuthPath(url.toString(), auth.options)) { return auth.handler(request); } return resolve(event); }; function isAuthPath(url, options) { const _url = new URL(url); const baseURL = new URL(options.baseURL || `${_url.origin}/api/auth`); if (_url.origin !== baseURL.origin) return false; if (!_url.pathname.startsWith( baseURL.pathname.endsWith("/") ? baseURL.pathname : `${baseURL.pathname}/` )) return false; return true; } export { isAuthPath, svelteKitHandler, toSvelteKitHandler }; ``` Here is the repo: https://github.com/nevthereal/better-auth-testing I am using pnpm@9.9.0. I also saw this post on the discord under the threads in the #bug-reports channel.
GiteaMirror added the locked label 2026-04-15 14:42:36 -05:00
Author
Owner

@nevthereal commented on GitHub (Oct 4, 2024):

I now just get a new error:

Cannot destructure property 'building' of '(intermediate value)' as it is undefined.
    at Module.svelteKitHandler
<!-- gh-comment-id:2393235055 --> @nevthereal commented on GitHub (Oct 4, 2024): I now just get a new error: ``` Cannot destructure property 'building' of '(intermediate value)' as it is undefined. at Module.svelteKitHandler ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/better-auth#16743