如何在TypeScript中将本地common文件夹作为项目依赖(无需Lerna等工具)
实现本地共用common包的方案
1. 配置common包的package.json
先搞定common目录的包配置:
- 进入
common目录,执行npm init -y生成基础package.json - 把
name字段改成唯一标识,比如@myrepo/common,避免和公共npm包重名 - 确认
main(指向编译后的JS入口)和types(TypeScript类型文件入口)字段正确,比如设置为dist/index.js和dist/index.d.ts - common自身的依赖正常放在
dependencies,开发依赖(比如tsc、eslint)放devDependencies
2. 在project_1里添加本地依赖引用
打开project_1/package.json,在dependencies里加一行:
"@myrepo/common": "file:../common"
这里的../common是project_1到common的相对路径,别写错了。
3. TypeScript路径映射(可选但实用)
如果是TS项目,想在project_1里更方便导入common模块,修改project_1/tsconfig.json:
在compilerOptions里加paths配置:
"compilerOptions": { "baseUrl": ".", "paths": { "@myrepo/common": ["../common/src"] } }
这样写代码时就能直接用import xxx from '@myrepo/common',不用写冗长的相对路径。
4. 安装验证
进入project_1目录执行npm install:
- npm会自动把common包软链接到project_1的
node_modules里 - 同时会把common自身的
dependencies安装到project_1的node_modules(common的开发依赖不会被安装,符合npm规则)
额外提醒
- 如果common需要编译(比如TS转JS),得先在common目录执行编译命令(比如
tsc),确保project_1能找到编译后的文件;嫌麻烦的话,也可以在project_1的package.json里加个前置脚本:
这样执行"scripts": { "preinstall": "cd ../common && npm install && tsc" }npm install时会先自动编译common。 - 后续common代码更新后,在project_1里执行
npm update @myrepo/common就能同步最新版本。
内容的提问来源于stack exchange,提问作者ozgenbaris
相关产品推荐
相关产品推荐

