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

多个VueJS TypeScript项目如何搭建公共共享库避免代码重复?

本地复用TS公共代码配置方案

无需发布npm包,采用本地公共TS库+项目直接关联的方案即可实现需求,全程本地操作,配置复杂度低。


1. 搭建本地公共TS库

在两个Vue项目的同级目录创建公共库文件夹,参考目录结构如下:

工作根目录/
├── vue-public-client/  # 公众客户端项目
├── vue-admin-tool/     # 管理后台项目
└── shared-ts/          # 公共TS库存放目录
    ├── src/
    │   ├── models/     # 复用的TS类型/模型定义
    │   ├── services/   # 复用的接口请求/公共逻辑
    │   └── index.ts    # 统一导出入口
    ├── tsconfig.json
    └── package.json

公共库配置文件示例

  • shared-ts/package.json配置:
{
  "name": "@your-custom/shared",
  "version": "0.0.1",
  "main": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "scripts": {
    "build": "tsc"
  },
  "devDependencies": {
    "typescript": "^4.9.0"
  }
}
  • shared-ts/tsconfig.json配置(和你的Vue项目TS配置对齐即可):
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "declaration": true,
    "outDir": "./dist",
    "strict": true,
    "moduleResolution": "node",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

将原项目中需要复用的models、services迁移到公共库对应目录,在index.ts中统一导出后,在公共库目录执行npm run build完成首次编译。


2. 关联公共库到Vue项目

两种关联方式可选:

  • 本地路径依赖(稳定性更高,无需额外操作)
    在两个Vue项目的package.json的dependencies字段中添加如下配置:
"@your-custom/shared": "file:../shared-ts"

之后在两个项目目录分别执行npm install,npm会自动将公共库软链到项目的node_modules目录。

  • npm link(适合公共库频繁修改的场景)
    先在公共库目录执行npm link,之后分别在两个Vue项目目录执行npm link @your-custom/shared即可完成关联。

3. 适配Vue CLI编译配置

Vue CLI默认不会转译node_modules中的依赖,需要修改两个项目的vue.config.js,将公共库加入转译名单:

module.exports = {
  transpileDependencies: ['@your-custom/shared']
}

如需配置别名简化引入,可在项目的tsconfig.json中添加paths配置:

{
  "compilerOptions": {
    "paths": {
      "@/*": ["src/*"],
      "@shared/*": ["../shared-ts/src/*"]
    }
  }
}

使用方式

配置完成后可直接在两个项目中引入公共内容:

// 方式1:从包名引入
import { UserModel, fetchUserList } from '@your-custom/shared'
// 方式2:通过别名直接引入源文件(无需每次修改公共库后重新编译)
import { UserModel } from '@shared/models/user'

维护规则

每次修改公共库代码后,在公共库目录执行一次npm run build,两个项目即可自动获取最新代码,无需重复执行安装/关联操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:54:02