npm - Typescript 本地依赖(多个项目)
我刚接触 TypeScript。我目前正在尝试创建一个相互依赖的项目结构。有三个项目:core、calculator 和 tax-calculator。项目 tax-calculator 需要从 calculator 项目中获取代码,而 calculator 需要 core 项目的内容。core 和 calculator 项目应该是库,而 tax-calculator 应该是一个网页界面。我之所以拆分代码,是因为我在其他项目中也需要使用 core 和 calculator。
core
|--src
|--MathUtils.ts
|--...
|--dist
|--MathUtils.js
calculator
|--src
|--Calculator.ts // needs MathUtils.ts
|--dist
|--Calculator.js
tax-calculator
|--src
|--TaxCalculator.ts // needs Calculator.ts
|--dist
|--TaxCalculator.js
我怎样才能确保这些资源在其他使用 npm 或 webpack 的项目中可用?我正在使用 Visual Studio Code,我希望在开发时使用自动补全和其他功能,就像我使用 @types/chrome 或其他类型时一样。
答案#1
虽然有点晚,但我将提供截至今天(2018年12月)可用的不同选项:
使用 node/脚本自定义设置,如在 Cycle.js 中所做的:
设置 JavaScript 单仓库。
使用 Lerna:
许多大项目,包括 Babel、Marble.js、Material、Angular,都使用 Lerna 进行多包设置。
TypeScript 项目引用:
TypeScript 3.0 现在提供对项目引用的支持。
Git 子模块
Git 子模块也可以使用,尽管它不仅限于 TypeScript。它可以用于共享任何类型的代码。Ghost 博客平台就使用这种方法。除非你了解所有相关的问题,否则我真的不推荐这种方法。
另外,如果你使用 Yarn,你可以考虑使用工作区,尽管我不确定它与 TypeScript 配合得如何。