如何正确导出模块/发布包?解决“Cannot find module”问题
Backstage插件npm安装后导入失败的解决方案
1. 检查package.json核心配置
- 确认
main字段指向编译后的主入口文件,比如dist/index.js - 必须配置
types字段指向类型声明文件,比如dist/index.d.ts,否则TypeScript无法识别类型 - 检查
files字段是否包含dist目录,确保发布到npm的包包含编译产物,避免只上传源码
参考正确配置片段:
{ "main": "dist/index.js", "types": "dist/index.d.ts", "files": [ "dist", "README.md" ] }
2. 修正tsconfig.json编译设置
- 开启
declaration: true,确保TypeScript编译时生成.d.ts类型声明文件 - 配置
outDir: "dist",让编译产物统一输出到dist目录 - 确保
include字段覆盖所有需要编译的源码,比如src/**/*
参考关键配置片段:
{ "compilerOptions": { "declaration": true, "outDir": "dist", "target": "ES2019", "module": "commonjs" }, "include": ["src/**/*"] }
3. 规范发布流程
- 执行
tsc编译后,手动检查dist目录是否生成了完整的.js和.d.ts文件 - 发布前用
npm pack生成本地测试包,解压后确认dist目录存在且文件完整 - 发布时确保是基于
dist编译产物,而非直接发布源码
4. 本地依赖验证
- 在目标Backstage项目的
node_modules/backstage-dev-friends-days目录下,检查是否存在dist文件夹 - 如果没有,说明发布时未包含编译产物,调整package.json的
files配置后重新发布
内容的提问来源于stack exchange,提问作者Piotrek
相关产品推荐
相关产品推荐

