使用 ember-cli (ember-cli.org)。它非常适合这种情况,因为它允许您快速制作 ember 应用程序的原型。它甚至带有一个基于 expressJS 的测试套件和模拟服务器。
一旦您准备好将其合并到您的 NodeJS、Flask 或任何其他应用程序中,所有静态文件都应该在 ember-cli dist 目录中可用。
只是不要忘记在移植之前构建 ember-cli 项目,通过ember build 的方式。之后,只需将 ember 项目 dist 文件夹中的文件移动到环境中所需的任何位置即可。
只是为了修饰一下:Ember-cli 有一个很棒的工作流程,可以在构建您的 ember 应用程序时使用。试试ember serve 一个简单的例子。我提到这一点是因为它说明了如何将其合并到现有项目中的问题(按项目,我假设您可能指的是工作流)。我通常会纯粹使用 ember-cli 构建 ember 项目,并将后端(通常是通过 Flask 或 NodeJS 公开的 REST-API)视为一个单独的问题。导入应用程序时,我只需要确保我的服务器提供正确的静态 dist 文件。
我不建议使用 Ember App Kit (EAK),因为它已被 ember-cli 弃用。真的……好多了。
好的,所以我将尝试在此答案中更完整。让我们从孤立的问题开始 - ember-cli 还是 eak?肯定是 Ember-Cli,但为什么呢?
- EAK 将正式弃用以支持 ember-cli。
- Ember-cli 生成更结构化、更简洁、可维护的 ember 代码。
- Ember-cli 集成了您的整个 ember-app 工作流程。
- 通过
bower install --save 和Brocfile.js edits 可以轻松管理所有类型的依赖项和资产。 (解释见 ember-cli 文档)
现在是问题中更复杂的部分。如何将其与现有工作流程集成?我最近在构建包含 webrtc 的 ember 应用程序时遇到了这个问题。碰巧这也是我第一次真正使用 ember。所以,我还没有意识到我的新锤子的全部潜力,我编写了 REST API、后端 ORM 层、信号服务、会话缓存,并首先构建了一个完整的 CI 工作流。然后我准备好构建我的 ember 应用程序并最终进入了你的确切位置。
长话短说 - 我学到的教训是我应该将我的 ember-cli 应用视为一个完全独立的问题。我的意思是——有我的后端(NodeJS、Apache、Nginx……等等),我在这里编写的代码是单独构建、测试和集成的。它通常甚至存在于自己的 git 存储库中。这是我的前端方程的一个单独问题,它通常由几个组件本身组成。我的 I-Phone Native 应用程序将有自己的工作流程,从构建到测试并通过 REST API 集成到我的后端。我的 Android 原生应用程序另一个。我的网络应用程序另一个。出于所有意图和目的,在我的工作流程中,这些都是完全独立的工作流程,只有在我们开始讨论持续集成时才会联系在一起。
对于您为什么要这样做有很多争论。最重要的是 - 它可以扩展。
ember-cli 的美妙之处在于,它使为您的 ember 应用程序运行的工作流程变得相当简单,并且在新的盒子/实例上重新部署您的应用程序 + 工作流程变得简单。我当然会推荐referring to the official ember-cli setup instructions,但我会将它们包括在此处,以防有一天 URL 变坏:
不是真的,参考链接我的说明会比较糟糕......
Deploying a new Ember App
- 通过
sudo apt-get install nodejs 和sudo apt-get install npm、sudo apt-get install git 在您的系统上安装 NodeJS、NPM 和 Git(ember-cli 将作为默认加载 git 用于新应用程序)。
注意:在 Ubuntu 14.04 和其他一些 Debian 系统上使用 sudo apt-get install nodejs-legacy 代替。如果有疑问,请使用 legacy。如果你在安装后使用node 命令遇到问题,那肯定是你需要使用nodejs-legacy。不要费心尝试手动进行链接。
全局安装所需的节点模块:sudo npm install -g ember-cli、sudo npm install -g bower、sudo npm install -g phantomjs
创建新的 ember-cli 应用:cd <Desired Directory>、ember new my-app-name
现在您可以查看ember help 以开始学习如何使用 ember-cli。 提示:--dry-run 标志是你的朋友。您会注意到,当您安装 ember-cli 时,所有的脚手架都已为您处理好了。您将看到您可以使用简单的ember generate 命令添加内容,它们不仅会创建所需的对象,还会创建测试文件。最重要的是,使用ember serve,您可以开始搭建您的应用程序,并通过简单的标志您可以配置测试服务器以实际代理并使用您已经存在的 REST API(如果有的话)或 expressJS 模拟服务器来构建一个伪-API。
从这里将它与您更大的工作流程集成是一件简单的事情,只需配置您使用的任何工具(我使用 Jenkins 和 Ansible 来处理这类东西)将 ember-cli 的 dist 文件夹分发到应该提供服务的位置作为静态内容(它最终只是一个单页 webapp)。
如果您想改用现有的 ember-cli 应用程序,该应用程序在独立的工作流程中运行,并且已经利用了大多数好东西来获得一些熟悉感 - 因为我怀疑您会很快意识到如何适应它进入您当前的结构 - 随意克隆和使用this one here。
最后,为了回答更具体的问题,即它如何适应现有的目录结构,我将把它分为两类。当我们谈论 src - 我会将它放在它自己的“结构”中,至少通过位于它自己的单独子目录中来分隔。当我们谈论构建和交付时,我会将 /dist 文件夹的内容包含在您想要为您的 ember 应用程序提供服务的任何静态 Web 服务器目录中。
编辑:我添加了更多细节 - 希望在换行符下方有用的细节。如果您有更多问题或者我是否可以更好地解释,请告诉我。