【问题标题】:Automating Node and Angular frontend/backend Integration, production preparation and deployment? [closed]自动化 Node 和 Angular 前端/后端集成、生产准备和部署? [关闭]
【发布时间】:2013-12-09 21:44:30
【问题描述】:

我已经用 Node.js 进行了一段时间的试验,并用ExpressHapiRestify 将简单的项目组合在一起。这些小项目的前端非常小而且有限,因为我主要专注于后端,所以在将它们部署到生产服务器时,我从来不需要自动化很多细节。

我最近开始涉足前端开发,偶然发现了一些很棒的自动化工具; Yeoman(整体工作流程)、Yo(用于脚手架)、Grunt(自动化)和Bower(用于依赖项)。

我非常喜欢这些工具的工作流程,它们让我对尝试学习前端开发、结构化和工作流程感到非常兴奋。然而,学习所有这些也引发了关于自动化集成前端和后端的其他工作流领域的正确方法的问题:

1) 我应该在同一个存储库中维护前端和后端吗?它们都是用 JavaScript 编写的,但看起来有点笨拙。我知道这是一个偏好问题,但我希望看到一些关于当前最佳实践的想法。最好让我的应用程序中的公共目录成为另一个的符号链接。

2) 如何将前端连接到后端?专门讨论 socket.io 调用。我不确定自动化如何最好地设置此变量的最佳方法。在后端我会使用 process.env,但我不确定如何根据测试、生产设置将它们连接在一起。我不想每次部署到服务器时都手动更改。

【问题讨论】:

    标签: node.js angularjs socket.io gruntjs yeoman


    【解决方案1】:

    1) 我喜欢将它们保存在同一个存储库中的想法。随着您的前进,它使您的生活变得更加轻松。您会感到高兴的一件事是,一旦您的服务器和网页由同一个 Web 服务器提供服务,您就不需要处理任何 CORS 问题。或者您不需要反向代理来解决 CORS 问题。

    2) 我们使用带有 socket.io 调用的 Angular js。由于您使用 yeoman,因此您可以像这样将配置文件读入 Gruntfile.js。 grunt.file.readJSON('config.json'). 如果你有 CI,你可以重复使用你的 grunt 脚本。

    nodeServer : {
       prod : {
           port: 8080, //other params
       } 
    }
    

    【讨论】:

    • 你能详细说明我将如何使用这个带有 grunt 的配置文件将正确的信息注入 HTML 或 JS 吗?
    • 在您的 js 中,您可以使用 require 来加载相同的 config.json,例如 `require('config.json')。这会给你你的配置对象。您可以使用 process.env.ENVIRONMENT 找出节点环境。确保你在你的 grunt 文件中设置了这个 ENVIRONMENT。所以,一旦你得到你的 json 并且你知道环境,你就可以使用端口和其他设置了。
    • @Hortinstein:如果您的问题得到解决,您能否将其标记为已回答。它会帮助别人。否则,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 2021-04-10
    • 2014-03-01
    • 2020-08-17
    • 2011-04-01
    • 1970-01-01
    相关资源
    最近更新 更多