[英]AngularJS + sails.js
我正在开发一个应用程序,可以将sails.js用于后端,将AngularJS用于前端。 我以为我将使用Yeoman-angular生成器https://github.com/yeoman/generator-angular创建一个Angular应用程序,一旦我完成了前端逻辑,我将使用创建一个sails应用程序,
然后我将所有AngularJS文件传输到Sails文件夹。
但问题是AngularJS创建了这样的文件夹层次结构,如https://github.com/rishy/angular-jade-stylus-seed ,在运行“grunt server”时,会创建一个包含最终生产版本的“dist”文件夹。
另一方面,sails app的“sails new app”文件夹层次结构就像。
所以,我的问题是:
我认为很多人都面临着类似的问题,因为AngularJS和SailsJs目前风靡一时。 应该有一个强大的样板来创建一个AngularJS + SailsJS应用程序,现在很遗憾。
由于Sails是纯粹的后端框架,而Angular纯粹是前端,因此它们可以很好地协同工作。 当你将Angular生成器放入其中时会有点混乱,但如果你从Angular Seed应用程序和Sails v0.10开始,这里是基本步骤:
sails new myApp
创建一个新的Sails应用程序 myApp/assets
文件夹的内容 app
文件夹的内容复制到myApp/assets
myapp/views/layout.ejs
的内容替换为Angular Seed app/index.html
文件的内容 layout.ejs
文件中的所有非脚本标记内容( <body>
标记之后和第一个<script>
标记之前的所有内容,并使用它来替换myApp/views/homepage.ejs
<%-body%>
放在layout.ejs
的<body>
标记layout.ejs
然后,您可以使用sails lift
启动服务器,您将在http://localhost:1337
看到Angular应用程序。
我把它放在Github上作为参考。
使用这种方法,您不需要对Gruntfile做任何事情,并且您永远不会调用grunt server
- 这只是用于测试Angular应用程序的测试服务器,而您正在用Sails替换它们。 您仍然可以获得Sails grunt-sync任务的好处,该任务可以在更改前端资产时监视和同步它们。
如果您真的想使用Yeoman Angular生成器,可以尝试直接在Sails应用程序的assets
文件夹中生成应用程序,并使用该文件夹中的生成器命令。 我之前没有使用它,所以我不知道dist文件夹的用途,但它似乎安装的所有节点模块都支持测试Web服务器(这也是你不需要的,因为你有Sails)和测试套件(这总是很好)。 我能看到的唯一问题是你是否需要Yeoman生成的Gruntfile中的一些任务。 Sails处理较少的编译和CSS缩小(在生产模式下),但它对Jade或Stylus没有任何作用,因此如果你确实需要它们,你必须将这些任务添加到Sails Gruntfile。
您的问题正是我创建Sailng的原因: https : //github.com/ryancp/sailng这是一个使用最新Sails 0.10.0-rc5的示例/样板应用程序。
它还演示了如何在Sails中使用socket.io来为客户端提供实时更新而不进行ajax轮询。
克隆它并按照说明更好地了解如何一起使用Sails和Angular。
我还为Sails.js + Angular做了示例“样板/示例”应用程序。 在我的解决方案中,这些分离到后端和前端(两个服务器)。
我的解决方案还演示了用户之间数据中的套接字通信+实时更新。
随意尝试一下。 https://github.com/tarlepp/angular-sailsjs-boilerplate
我有类似的用例。 我使用Yeoman为angularjs生成项目结构。 在这种情况下,我的解决方案是:
在sails.js项目的routes.js中,删除视图的配置代码:
'/':{view:'homepage'}
删除sails.js视图和资源文件夹下的所有文件。 但是,请确保在删除所有内容之前不需要assets文件夹中的任何文件。
将缩小的angularjs网站复制并粘贴到assets文件夹。
启动sails.js(帆升降机),您可以在localhost:1337浏览您的角度网站
Sails.js现在也简要地提到了这个方法http://sailsjs.org/documentation/concepts/views
您必须配置默认任务以将angular dist文件夹复制到.tmp中
请参阅此Sails Angular项目中的任务配置
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.