我正在开发一个应用程序,它可以将sails.js 用于后端,将AngularJS 用于前端。我想我会使用 Yeoman-angular 生成器 https://github.com/yeoman/generator-angular 创建一个 Angular 应用程序,一旦我完成了前端逻辑,我将使用它创建一个 sails 应用程序,
- npm install -g sails
- 推出新应用
然后我会将我所有的 AngularJS 文件转移到 Sails 文件夹中。
但问题是 AngularJS 创建了这样的文件夹层次结构 https://github.com/rishy/angular-jade-stylus-seed并在运行“grunt server”时创建一个包含最终生产版本的“dist”文件夹。
另一方面,在“sails new app”之后,sails app 的文件夹层次结构是这样的。
- api
- 适配器/
- Controller /
- 模型/
- 政策/
- 服务/
- Assets
- 图片/
- js/
- 样式/
- favicon.ico
- robots.txt
- 配置/
- node_modules/
- 观看次数
- 家/
- 403.ejs
- 404.ejs
- 500.ejs
- layout.ejs
- Gruntfile.js
- app.js
- 包.JSON
所以,我的问题是:
- 现在,我如何将我的 Angular 文件转移到这个sails 目录,我应该如何构建它?
- 由于sails 使用“sails lift”来启动服务器,而angular 使用“grunt server”,我应该使用其中之一来为我的sailsJs + AngularJs 应用程序启动服务器,以及创建的“dist”文件夹呢在 AngularJS 之后?
- 我必须在 Gruntfile.js 中进行哪些更改,因为它现在应该包含来自 Angular 和 Sails 的代码?
- 我应该将不同的 View 和样式文件保存在哪里,我应该如何从 Angular 或 Sails 访问这些文件?
我认为很多人都面临着类似的问题,因为 AngularJS 和 SailsJs 目前风靡一时。应该有一个健壮的样板来创建一个 AngularJS + SailsJS 应用程序,遗憾的是现在缺少它。
最佳答案
由于 Sails 是一个纯粹的后端框架,而 Angular 是纯粹的前端,它们可以很好地协同工作。当您将 Angular 生成器带入其中时可能会有些困惑,但如果您要从 Angular Seed 开始,以下是基本步骤。应用程序和 Sails v0.10:
- 使用
sails new myApp
创建一个新的 Sails 应用程序 - 清除
myApp/assets
的内容文件夹 - 复制 Angular 种子
app
的内容文件夹到myApp/assets
- 替换
myapp/views/layout.ejs
的内容与 Angular Seedapp/index.html
的那些文件 - 从
layout.ejs
中删除所有非脚本标记内容文件(<body>
标记之后和第一个<script>
标记之前的所有内容,并使用它来替换myApp/views/homepage.ejs
的内容 - 地点
<%-body%>
在<body>
之后标记layout.ejs
然后您可以使用 sails lift
启动服务器你会在 http://localhost:1337
看到 Angular 应用程序.
我有 put this on Github供引用。
使用这种方法,你不需要对 Gruntfile 做任何事情,而且你永远不会调用 grunt server
--这仅用于使用他们的测试服务器测试 Angular 应用程序,您将用 Sails 替换它。您仍将受益于 Sails grunt-sync 任务,该任务会在您的前端 Assets 发生变化时对其进行监视和同步。
如果你真的想使用 Yeoman Angular 生成器,可以尝试直接在 assets
中生成应用程序。 Sails 应用程序的文件夹并使用该文件夹中的生成器命令。我以前没有使用过它,所以我不知道 dist 文件夹的用途,但似乎它安装的所有 Node 模块都在那里支持测试 Web 服务器(你也不需要它,因为你有 Sails)和测试套件(总是很好)。我能看到的唯一问题是您是否需要 Yeoman 生成的 Gruntfile 中的某些任务。 Sails 处理较少的编译和 CSS 缩小(在生产模式下),但它对 Jade 或 Stylus 没有任何作用,因此如果您确实需要这些任务,则必须将这些任务添加到 Sails Gruntfile。
关于javascript - AngularJS +sails.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938850/