我正在开发一个应用程序,可以利用帆.后端为js,前端为AngularJS.我想我将使用Yeoman Angular generator https://github.com/yeoman/generator-angular创建一个Angular应用程序,一旦我完成了前端逻辑,我将使用,

  1. npm安装-g帆
  2. 帆船新应用

然后我会把我所有的AngularJS文件转移到Sails文件夹.

但问题是AngularJS创建了一个像这样的文件夹层次 struct ,在运行"grunt server"时,会创建一个"dist"文件夹,其中包含最终的生产版本.

另一方面,在"帆船新应用"之后,sails app的文件夹层次 struct 如下.

  • 应用程序编程接口
  • assets资源
  • 配置/
  • node 单元/
  • 意见
  • 格伦蒂尔.js
  • 应用程序.js
  • 包裹JSON

所以,我的问题是:

  1. 现在,我该如何将我的Angular文件传输到这个sails目录,以及如何构造它?
  2. 既然sails使用"sails lift"来启动服务器,angular使用"grunt server",那么我应该使用哪一个来启动我的sailsJs+AngularJs应用程序的服务器,以及AngularJs之后创建的"dist"文件夹呢?
  3. What changes will I have to make in the 格伦蒂尔.js, since it should now contain the code from both Angular and Sails?
  4. 我应该将不同的视图和样式文件保存在哪里?我应该如何访问这些视图和样式文件?

我认为很多人都面临着类似的问题,因为AngularJS和SailsJs目前都很流行.应该有一个强大的样板文件来创建AngularJS+SailsJS应用程序,遗憾的是现在还没有.

推荐答案

由于Sails是纯后端框架,Angular是纯前端框架,因此它们可以很好地协同工作.当你把Angular 发生器放进go 的时候,可能会有点困惑,但是如果你从Angular Seed应用和Sails v0开始,下面是一些基本的步骤.10:

  1. 创建一个有sails new myApp个用户的新Sails应用程序
  2. 清除myApp/assets文件夹中的内容
  3. 将Angular Seed app文件夹的内容复制到myApp/assets
  4. myapp/views/layout.ejs的内容替换为Angular Seed app/index.html文件的内容
  5. layout.ejs文件中剪切所有非脚本标记内容(<body>标记之后和第一个<script>标记之前的所有内容),并使用它替换myApp/views/homepage.ejs的内容
  6. layout.ejs中的<body>标签后放置<%-body%>

然后你可以用sails lift启动服务器,你会在http://localhost:1337看到Angularapply.

我有put this on Github个可供参考.

使用这种方法,你不需要对GrunFile做任何事情,也永远不会调用grunt server——这仅仅是为了用测试服务器测试Angular应用程序,你正在用Sails替换它.您仍将受益于Sails grunt sync任务,该任务在前端assets资源 发生更改时监视并同步它们.

如果你真的想使用Yeoman Angular generator,你可以try 直接在Sails应用程序的assets文件夹中生成一个应用程序,并使用该文件夹中的generator命令.我以前没有使用过它,所以我不知道dist文件夹是用来做什么的,但它安装的所有 node 模块似乎都是用来支持测试web服务器(你也不需要,因为你有Sails)和测试套件(总是很好).我能看到的唯一问题是,你是否需要Yeoman生成的Gruntfile中的一些任务.Sails处理较少的编译和CSS缩小(在生产模式下),但它不使用Jade或手写笔,因此如果您真的需要,您必须将这些任务添加到Sails Gruntfile中.

Node.js相关问答推荐

Node.js promise 循环中的所有多个API调用

仅当所需文档是最后一个文档时才更新MongoDB,否则插入

MongoDB如果文档S的字段小于另一个字段,则将该字段加一

FiRestore UPDATE方法引发错误:&Quot;错误:13内部:收到代码为1&Quot;的RST_STREAM

控制台显示一个长对象,我可以';每当我发布更新Mongoose数据库的请求时,我都不知道错误是什么,

在函数上执行 toString 的Typescript 会产生奇怪的字符 (path_1, (0, Promise.writeFile))

try 使用 pdf.js 时 pdf.getPage 不是函数

我需要聚合两个 MongoDB 集合

在 MacOS Ventura 上使用 NVM 安装 node ?

在 .htaccess 中从非 www 切换到 www 后如何解决无法访问该站点?

多字段传递获取查询失败

nvm / node / npm: node 12 的 npm 比 node 14 的更新?

将已保存的卡片从条带显示到前端

2 x 匹配标准显示没有结果

Socket IOFlutter 未连接

使用 Socket.io 将客户端连接到服务器

npm WARN 不推荐使用 graceful-fs@3.0.8:graceful-fs 版本 3

node.js 示例

大型项目的 NodeJS vs Play 框架

node.js 中的意外保留字导入