You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决.nuxt/imports.d.ts中#app/composables/script-stubs导入解析错误

修复"Failed to resolve import '#app/composables/script-stubs'"错误

你的问题根源在于错误地将Nuxt内置的虚拟模块别名指向了类型声明文件。.nuxt/imports.d.ts只是TypeScript的类型定义文件,不是实际的模块代码,Vite自然无法解析这些导入路径。

修复步骤:

  1. 移除错误的别名配置
    删掉resolve.alias中所有指向.nuxt/imports.d.ts的条目,Nuxt会自动处理#app、#vue-router这类内置虚拟模块的别名,不需要手动指定。

  2. 修正基础别名(可选)
    如果需要保留@和~的别名,确保指向项目根目录的相对路径,避免环境路径问题:

    alias: {
        '@': path.resolve(__dirname, './'),
        '~': path.resolve(__dirname, './'),
    }
    

    不过Nuxt默认已经配置了这些别名,你甚至可以完全移除这个alias对象,让Nuxt自动管理。

  3. 调整AutoImport/Components插件(避免冲突)
    Nuxt本身自带自动导入功能,如果你同时使用了unplugin-auto-import和unplugin-vue-components,可能会和Nuxt的内置功能冲突。建议:

    • 要么在nuxt.config.ts中设置autoImports: false,禁用Nuxt的内置自动导入
    • 要么移除Vite配置中的这两个插件,改用Nuxt的内置自动导入能力
  4. 清理并重建Nuxt缓存
    删除.nuxt文件夹,然后运行:

    npx nuxt prepare
    # 或者直接启动开发服务器
    npx nuxt dev
    

    这会重新生成正确的类型文件和模块映射。

修改后的Vite配置示例:

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import Components from 'unplugin-vue-components/vite';
import AutoImport from 'unplugin-auto-import/vite';
import path from 'path';

export default defineConfig({
    plugins: [
        vue(),
        Components({
            dts: true,
            types: [{
                from: 'vue-router',
                names: ['RouterLink', 'RouterView'],
            }],
            dirs: ['./components'],
        }),
        AutoImport({
            imports: [
                'vue',
                'vitest',
                'pinia',
                "vue-router-composables",
                "vitepress"
            ],
            dirs: ['./composables', './stores', './utils'],
            dts: true,
        }),
    ],
    test: {
        globals: true,
        environment: 'happy-dom',
        include: ['__tests__/**/*.spec.ts'],
        coverage: {
            all: true,
        },
    },
    resolve: {
        alias: {
            '@': path.resolve(__dirname, './'),
            '~': path.resolve(__dirname, './'),
        },
    },
    publicDir: 'public',
});

额外注意事项:

  • 确保你的Nuxt版本和Vite版本兼容,建议使用最新稳定版。
  • 如果是VitePress项目,注意VitePress本身也有自己的别名管理逻辑,避免和手动配置冲突。

内容的提问来源于stack exchange,提问作者Julio S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 18:13:29