【问题标题】:How to organize Marionette projects between production and dev?如何在生产和开发之间组织 Marionette 项目?
【发布时间】:2015-09-14 15:00:05
【问题描述】:

我的问题很简单。想象一下,您有一个使用 Marionette/backbone 构建的项目,并且您有两个目标媒体:移动和桌面。有一个后备服务器,用 DJango(或 Ruby 等)编写。

如何组织项目,以便将其编译到移动设备并使其在桌面设备上运行?我的意思是,想象一下具有 url 参数的集合。将其设置为相对?到绝对,从零开始?

该项目已经有一个可行的布局,我可以使用 r.js 对其进行编译。差不多是这样的:

repo-root/
 - src/
  - assets/
   - css/
   - images/
  - project-code/
  - vendor/
  - build.js
  - config.xml (phonegap conf)
  - index.html
  - main.js
 - tests/
- bower.json
- .gitignore

这是一个集合的例子:

define(function(require){
    "use strict";
    var Backbone = require("backbone");
    var FeatureClass = require("atlas-backbone/models/FeatureClass");
    return Backbone.Collection.extend({

        url: "api/featureclasses",
        model: FeatureClass

    });
});

我的问题是如何组织它,以便它可以编译到移动设备并在桌面版本中运行。

【问题讨论】:

  • Collections 处理数据,它被设计为独立于展示(移动、桌面、平板电脑等)
  • @LeshaOgonkov:好的,当然。但是我应该如何定义它的 URL,如果它被设计为通过移动设备与远程服务器通信(绝对 URL,如:foo.com/api/featureclasses)并且应该在桌面机器的开发和生产中工作(相对 URL,如 api/featureclasses )?
  • 本地模拟?我更喜欢使用相对路径来简化它,所以在本地你会得到dev.local/api/foo,指向你的模拟服务器。您可以使用绝对路径,但是您需要以某种棘手的方式编辑您的 hosts 文件。
  • 好的,太好了。你能举一些关于如何模拟它的例子吗?我有一个 dev django 服务器已经给了我回复。但我确实理解如何模拟它会更容易快速发展和分离两个世界的发展。
  • 在开发模式下运行您的服务器并将您的请求指向localhost:some_port,您可以编辑您的hosts 文件以在您的域上使用别名(以防您需要域cookie 工作)跨度>

标签: django backbone.js marionette project-organization


【解决方案1】:

在我当前项目的当前工作中,我们广泛使用 Gulp 和 gulp 任务。我们有用于生产和开发的 Gulp 任务,并为每个任务设置不同的管道。

或者,如果您想独立管理这些事情,您可以使用更过时的方法,例如模拟服务器、相对 URL 或主机文件更改。

【讨论】:

  • 酷。我去看看。
猜你喜欢
  • 1970-01-01
  • 2012-06-01
  • 2013-12-14
  • 2019-05-29
  • 2018-05-01
  • 1970-01-01
  • 2011-10-09
  • 1970-01-01
  • 2021-03-31
相关资源
最近更新 更多