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

标签 javascript node.js angular typescript

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

为了实现 Rest 后端,我使用了 Node 和 Express。

考虑到前端和后端都是用 JavaScript(和 TypeScript)编写的,我想在这两个部分(即接口(interface)和简单实用程序)之间共享一些代码。

基本上我的项目由三部分组成:ClientServerShared。因此我倾向于有一个类似这样的项目目录结构:

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

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

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

最佳答案

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

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

很多时候,在生产中您将前端和后端分开。前端可能存在于文件存储系统(S3、谷歌云存储等)中,而后端在您的服务器上执行。这样就很难在两个系统上使用相同的文件。

关于javascript - 如何组织 Javascript 项目以允许在客户端 SPA 和 Node 服务器之间共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48223145/

相关文章:

javascript - JavaScript 中的完全限定名称

javascript - 摩卡 - TypeError : Cannot read property '$scope' of undefined

javascript - 如何在一个循环中迭代以比较javascript中的两个对象

javascript - 在 express.js 中循环遍历 json 数据

angular - 在ionic 4中动态选择单选按钮

angular - 在 Jasmine 中测试具有构造函数方法的 Angular2 管道

javascript - 嵌套模块的 Angular 404 页面路由

javascript - jQuery - 选择带有 $(this) 的 child

node.js - connect-mongo MongoStore session 实际上是如何保存的?

javascript - socket.io 聊天示例 -sails.js