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

SvelteKit组件库工具方法无法导入,报TS2305错误求助

问题排查:Svelte组件库工具方法无法导入

开发供其他项目调用的Svelte组件与核心库包,已成功导出并使用组件,但工具方法无法导入。执行以下导入语句时:

import { NavBar, Utils } from "@my-scope-name/my-package-name"; 

出现TypeScript错误:

Module '@my-scope-name/my-package-name' has no exported member 'Utils'.ts(2305)

相关配置与代码

package.json 配置

{
  "name": "@my-scope-name/my-package-name",
  "version": "0.0.6",
  ...
  "exports": {
    "./package.json": "./package.json",
    ".": {
      "types": "./dist/index.d.ts",
      "svelte": "./dist/index.js",
      "default": "./dist/index.js"
    },
    "./utils": {
      "types": "./dist/utilities/*.d.ts",
      "default": "./dist/utilities/*.js"
    }
  },
  "files": [
    "dist",
    "./src/lib/utilities/*",
    "!dist/**/*.test.*",
    "!dist/**/*.spec.*"
  ],
  ...
  "type": "module"
}

库入口文件 dist/index.js

// MediaQuery
export { default as MediaQuery } from './components/MediaQuery.svelte';
// NavBar
export { default as NavBar } from './components/NavBar.svelte';

// Utilities
export * as Utils from './utilities/utils';

排查与解决步骤

  • 检查类型定义文件 dist/index.d.ts:打开该文件确认是否包含 export * as Utils from './utilities/utils'; 的类型声明。TypeScript报错通常是因为类型定义未同步导出,若缺失需手动补充或调整打包工具配置,确保类型文件自动生成对应导出。
  • 验证dist目录结构:确认 dist/utilities/utils.js 和 dist/utilities/utils.d.ts 文件存在,且路径与 index.js 中的导入路径一致(相对dist/index.js的路径为./utilities/utils)。
  • 重新打包组件库:清理旧的dist目录,重新执行打包命令,确保打包过程无报错,所有文件正确输出到dist目录。缓存或打包遗漏可能导致文件缺失。
  • 优化package.json的files字段:移除 ./src/lib/utilities/*,因为用户依赖的是打包后的dist文件,保留该条目可能造成路径混淆,仅保留dist相关规则即可。

内容的提问来源于stack exchange,提问作者Code.Decode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 17:02:42