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
相关产品推荐
相关产品推荐

