我有一个使用 node.js 后端和 require.js/backbone 前端的应用程序。我的后端有一个配置/设置系统,根据环境(开发、生产、测试版)可以做不同的事情。我也想将一些变量传播到客户端,并让它们影响一些模板渲染(例如更改页面的标题或 URL)。
实现这一目标的最佳方法是什么?
我想出了一种方法,它似乎正在工作,但我认为这不是最聪明的事情,而且我不知道如何让它与 requirejs 优化器一起工作。我所做的是在后端公开一个 /api/config 方法(通过 GET),在客户端我有以下模块 config.js:
// This module loads an environment config
// from the server through an API
define(function(require) {
var cfg = require('text!/api/config');
return $.parseJSON(cfg);
});
任何需要配置的页面/模块都可以:
var cfg = require('config');
正如我所说,我对这种方法有疑问,我无法使用 requirejs 优化器编译/优化我的客户端代码,因为 /api/config 文件在优化期间离线不存在。而且我确信我的方法是一个坏主意还有很多其他原因。