如何组织Javascript项目以允许在客户端SPA和节点服务器之间共享代码

时间:2018-01-12 09:27:39

标签: javascript node.js angular typescript

我正在开发一个包含SPA前端和Rest后端的应用程序。

要实现Rest后端,我正在使用Node和Express。

考虑到前端和后端都是用JavaScript(和TypeScript)编写的,我想在这两部分之间共享一些代码(即Interfaces和simple utils)。

基本上我的项目由三部分组成:客户端服务器共享。因此,我倾向于拥有与此类似的项目目录结构:

ProjecFolder
   ClientFolder
     .....
   ServerFolder
     .....
   SharedFolder
     .....

我正在寻找有关如何最好地组织我的项目的建议。我做了一些研究,我发现这个interesting article建议使用一个基于Gulp任务的机制,将所有文件从SharedFolder复制到ClientFolder和ServerFolder中,然后运行转换。

我想知道是否可以使用替代方法或工具执行否则必须配置为Gulp工作流程。

1 个答案:

答案 0 :(得分:1)

我的建议是使用包管理器工具。如果有依赖项,并且服务器的要求发生了变化,则必须更改模块。当您需要对服务器进行更改时,您不希望SPA(前端)中断。

这就是包管理器为您提供版本的原因。依赖于共享代码的每个模块都可以使用不同版本的模块。您可以使用NPM。构建模块,发布模块,并将其安装在前端和后端。

很多时候,在制作中你分开了前端和后端。前端可能存在于文件存储系统(S3,Google云存储等)中,后端可在您的服务器上执行。然后在两个系统上使用相同的文件将更加困难。