在过去开发客户端应用程序时,我总是使用某种服务器端应用程序来打包和提供 JavaScript。这使我能够将环境变量传递给在生产环境和开发环境之间变化的客户端。
我正在使用 RequireJS 开发纯客户端应用程序,并使用静态 Web 服务器为其提供服务。某些配置会有所不同,具体取决于应用程序是在本地开发中运行还是在生产中运行(即,它将向其发出 AJAX 请求的服务器的 URL)。
使用 RequireJS 确定当前环境的最佳方法是什么?
最佳答案
我发现的另一种方法是直接使用 RequireJS 配置。从 RequireJS 1.1 开始,可以包含任意配置值。在我的主要配置中,我设置了 env: 'development
' 并在构建期间(使用 r.js)将值设置为 'production'
。
我创建了一个 config
目录,其中包含两个文件:development.js
和 production.js
。可以使用 Require 插件加载正确的文件(我们称之为 env
):
define(function() {
return {
load: function(name, req, load, config) {
if (!config.env || config.isBuild) {
config.env = 'production';
}
var path = name + '/' + config.env;
req([path], function(mod) {
load(mod);
});
}
};
});
下面是我的使用方法:
var config = require('env!config');
关于javascript - 如何使用 RequireJS 确定系统环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14443395/