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

Nuxt启动报错:无法解析'~'/'@'路径别名求助

Nuxt项目~与@别名解析失败问题

问题详情

启动Nuxt项目时,执行import View from "~/server/models/ViewModel.js";报错,~别名无法被解析,同时@别名也失效。待导入的是一个带有export default的基础Mongoose Schema,核心报错信息为:

Nuxt: [worker reload] [worker init] Cannot find package '~' imported from ...file

已尝试以下操作但未解决问题:

  • 更换Node.js版本(22、18、16)
  • 清理Nuxt缓存、删除并重新安装node_modules
  • 在nuxt.config.ts中手动配置别名(如下),但不仅无效,还导致其他插件无法解析绝对路径:
alias: {
   "@": "./",
   "~": "./",
 },

当前环境:npm 9.8.1,Node.js v18.18.1

完整错误栈:

ERROR  [worker reload] [worker init] Cannot find package '~' imported from C:\Users\xx\Desktop\shadcn\utils\security.js                                                      11:44:29 pm  

  at __node_internal_captureLargerStackTrace (node:internal/errors:496:5)
  at new NodeError (node:internal/errors:405:5)
  at packageResolve (node:internal/modules/esm/resolve:890:9)
  at moduleResolve (node:internal/modules/esm/resolve:939:20)
  at defaultResolve (node:internal/modules/esm/resolve:1132:11)
  at nextResolve (node:internal/modules/esm/loader:163:28)
  at ESMLoader.resolve (node:internal/modules/esm/loader:835:30)
  at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
  at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:77:40)
  at link (node:internal/modules/esm/module_job:76:36)

项目package.json配置

{
  "name": "nuxt-app",
  "private": true,
  "type": "module",
  "scripts": {
    "build": "nuxt build",
    "dev": "nuxt dev",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "postinstall": "nuxt prepare"
  },
  "dependencies": {
    "@mcistudio/vue-colorpicker": "^2.2.8",
    "@nuxtjs/color-mode": "^3.5.2",
    "@nuxtjs/tailwindcss": "^6.12.2",
    "@unovis/ts": "^1.5.0-beta.3",
    "@unovis/vue": "^1.5.0-beta.3",
    "@vee-validate/zod": "^4.14.7",
    "@vueuse/core": "^11.3.0",
    "axios": "^1.7.5",
    "backblaze-b2": "^1.7.0",
    "class-variance-authority": "^0.7.0",
    "cloudinary": "^2.5.1",
    "clsx": "^2.1.1",
    "embla-carousel-vue": "^8.5.1",
    "i": "^0.3.7",
    "is-mobile": "^5.0.0",
    "lucide-vue-next": "^0.460.0",
    "npm": "^10.9.1",
    "nuxt": "^3.14.1592",
    "nuxt-mongoose": "^1.0.6",
    "pinia": "^2.2.6",
    "pinia-plugin-persistedstate": "^4.1.3",
    "radix-vue": "^1.9.10",
    "shadcn-nuxt": "^0.11.3",
    "tailwind-merge": "^2.5.4",
    "tailwindcss-animate": "^1.0.7",
    "v-calendar": "^3.1.2",
    "vaul-vue": "^0.2.0",
    "vee-validate": "^4.14.7",
    "vue": "latest",
    "vue-router": "latest",
    "yup": "^1.4.0",
    "zod": "^3.23.8"
  },
  "overrides": {
    "nitropack": "2.9.7"
  },
  "devDependencies": {
    "@formkit/auto-animate": "^0.8.2",
    "@nuxt/icon": "^1.8.2",
    "@pinia/nuxt": "^0.7.0",
    "flyonui": "^1.1.0",
    "nuxt-auth-utils": "^0.5.5",
    "typescript": "^5.7.2"
  }
}

可行排查与解决方向

  1. 修正别名配置方式:Nuxt 3中别名需使用绝对路径,避免用相对路径./,改用fileURLToPath生成正确根路径:
import { fileURLToPath } from 'node:url'
import { defineNuxtConfig } from 'nuxt/config'

export default defineNuxtConfig({
  alias: {
    '~': fileURLToPath(new URL('./', import.meta.url)),
    '@': fileURLToPath(new URL('./', import.meta.url)),
  },
})
  1. 检查ES模块规范兼容性:项目type为module,确认导入语句的文件名大小写、后缀是否正确(Windows环境下Node.js对文件名大小写敏感)。
  2. 排查第三方插件冲突:逐个禁用shadcn-nuxt、nuxt-auth-utils、nuxt-mongoose等插件,确认是否是插件干扰了Nuxt默认的别名解析逻辑。
  3. 调整nitropack版本:当前项目强制指定nitropack为2.9.7,尝试移除overrides配置,使用Nuxt 3.14.x默认兼容的版本,或升级到最新兼容版。
  4. 重新生成Nuxt配置:删除.nuxt和.output目录,执行npm run postinstall或nuxt prepare,确保别名配置被正确加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:44:58