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

Lerna Monorepo中TypeScript包导入路径配置问题:省略/lib后缀

解决Lerna Monorepo中TypeScript包导入路径简化问题

问题核心

当前@company/api包需要通过@company/api/lib导入,本质是包的入口配置与编译输出不匹配,或入口文件未正确对外导出内容。

分步解决

1. 确认编译输出文件

先检查api/lib目录:

  • 源码入口是src/index.ts,TypeScript编译后应生成lib/index.js(JS文件)和lib/index.d.ts(类型声明文件)。
  • 如果没有这两个文件,执行编译命令(如tsc)生成正确输出。

2. 修正package.json的入口配置

当前package.json里main和typings指向lib/api.js、lib/api.d.ts,但源码入口是index.ts,编译后不会生成api.js,需修改路径:

{
  "name": "@company/api",
  "version": "0.0.1",
  // ...其他配置
  "main": "lib/index.js",
  "typings": "lib/index.d.ts",
  // ...其他配置
}

3. 确保入口文件正确导出内容

检查src/index.ts,确认需要对外暴露的Component已导出:

// src/index.ts
// 示例:从子模块导出Component
export { Component } from './components/Component';
// 或直接定义并导出
export const Component = () => { /* 组件逻辑 */ };

4. 验证Lerna本地链接

在Lerna项目根目录执行命令,确保消费包能正确链接到@company/api:

lerna bootstrap

若使用npm workspace,执行:

npm install

5. 消费包TypeScript配置检查(可选)

如果消费包也是TypeScript项目,确保其tsconfig.json中:

  • moduleResolution设为node(默认值)
  • skipLibCheck设为true,避免类型检查冲突

完成以上步骤后,消费包即可通过import { Component } from '@company/api';直接导入内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:40:21