在 svelte.config.js 中找不到 SvelteKit $app

Die*_*sel 2 svelte sveltekit

我根据文档安装了一个新的 SvelteKit,如果我尝试$app在 svelte 配置中使用,则会收到此错误。

svelte.config.js 中的错误

错误 [ERR_MODULE_NOT_FOUND]:找不到从 /Users/username/projects/my-app/svelte.config.js 导入的包“$app”

代码看起来像 -

import preprocess from 'svelte-preprocess';
import adapter from '@sveltejs/adapter-static';
import { dev } from '$app/env';

/** @type {import('@sveltejs/kit').Config} */
const config = {
    // Consult https://github.com/sveltejs/svelte-preprocess
    // for more information about preprocessors
    preprocess: preprocess(),

    kit: {
        adapter: adapter(),
        paths: {
            base: dev ? '' : '/CapitalBikesProject'
        },

        // hydrate the <div id="svelte"> element in src/app.html
        target: '#svelte'
    }
};

export default config;
Run Code Online (Sandbox Code Playgroud)

如何访问配置 javascript 文件中的开发模式?谢谢你!

Shr*_*van 5

很好的问题。解决方案是这样的,$app如果您需要所需的环境,则不能使用配置文件内部,您可以使用process.env.NODE_ENV返回字符串productiondevelopment

更新

Sveltekit PR 与5602合并并在变更日志100-next384中提到

如果您仍然想在 上使用此技巧,svelte.config.js请考虑将您的开发脚本从 更新"dev": "vite dev","dev": "NODE_ENV=development vite dev",

把你的改成svelte.config.js这个。

import preprocess from 'svelte-preprocess';
import adapter from '@sveltejs/adapter-static';

/** @type {import('@sveltejs/kit').Config} */
const config = {
    // Consult https://github.com/sveltejs/svelte-preprocess
    // for more information about preprocessors
    preprocess: preprocess(),

    kit: {
        adapter: adapter(),
        paths: {
            base: process.env.NODE_ENV === 'development' ? '' : '/CapitalBikesProject'
        },

        // hydrate the <div id="svelte"> element in src/app.html
        target: '#svelte'
    }
};

export default config;
Run Code Online (Sandbox Code Playgroud)