2017-08-16 55 views
1

我正在寻找一种方法来构建解决方案(=多个项目)。更确切地说,我想建立一个库和两个应用程序来使用库:一个网站和一个命令行工具。VS代码和打字稿:图书馆和几个前端

在Visual Studio/C#中,这很容易。我将创建三个项目,一个用于库,一个用于cmd线工具,另一个用于图形输出(Web或表单)。最后两个参考第一个。解决方案将建立所有三个。

我可以做类似于VSCode和Typescript的东西吗?我将如何设置根文件夹?子文件夹是什么项目?我如何控制构建什么?我需要多次调用编译器吗?

或者我使用不同的文件夹,并根据需要关闭/重新打开VSCode,并在两个用户程序中使用lib生成的javascript?

我宁愿集成版本...

回答

0

TL; DR使用lerna

我建议以下文件夹结构

- packages 
---------- CLI 
---------- webapp 
---------- common 
- package.json 
- .gitignore 
- ... 

在包文件夹中每个子文件夹都有自己的构建过程中,测试和发布。重要的一点是要保持每个软件包的统一生命周期。在根文件夹中,您只保留数据包以维护数据包。主要运行构建,测试,发布所有(或某些)包。

打字稿位不那么复杂,因为每个包都有.tsconfig。您还可以使用配置文件的extend功能将常用配置一起保存在回购的根目录中。

管理所有这些而不是使用手工脚本的通用工具是lerna。其中有很多关于管理mono-repos的信息。您可能想查看lerna bootstrap,它可以在开发时帮助将依赖的包链接在一起。