假设我有一个前端,该前端主要是一个单页面的应用程序,它是使用angular,grunt和bower编写的。假设我有一个后端,主要是一个坐在ORM之上的REST API,它使用grunt,express和sequelize之类的东西从数据库中存储/检索对象。
角度应用程序执行用户看到的所有可视化内容,但是它是通过后端提供的服务上的GUI来完成的。
希望将它们分成两个不同的代码库,以允许独立开发,版本控制,持续集成,推送到开发等。
我的问题是,有什么方法可以干净地进行此操作?是否有针对全栈javascript的推荐最佳实践?
选项#1似乎是一个整体,即“不要将它们分开”。优点是构建链很简单,而且一切都集中在一个地方-但似乎有很多弊端。很难独立版本化,正面折断意味着背面无法展开,依此类推。
选项#2似乎是一个准整体,其中前端构建链导致将一堆文件写入后端。dist
前端的目录将引用后端的某个目录,因此从本质上讲,当前端最小化,丑化等等时,它最终将发布到后端,后端将运行所有内容。
选项#3似乎是完全分开的:前端和后端各自在不同的端口上运行各自的服务器,并且它们是完全独立的项目。缺点似乎是需要将它们配置为了解彼此的端口。后端必须允许来自前端的CORS,并且前端需要知道所有这些端点的预期位置。
选项#4可能是使用docker-compose之类的东西将整个东西装配在一起。
我确定还有其他选择。建议的最佳做法是什么?