我正在开发一个使用Require.js for AMD的web应用程序和amplify.request来抽象我的AJAX调用。 amplify.request的另一个好处是我已经定义了一个替代模块,其中包含我可以用于测试目的的模拟版本的请求。目前,我只是在main.js文件中注释/取消注释模块引用,在我的请求模块的两个版本之间切换。
我喜欢做的是使用Grunt创建我的应用程序的不同版本,具体取决于我想要包含的模块。我也可以使用它来打开或关闭我的调试模式。我正在想象类似于usemin的内容,仅适用于JavaScript内部的引用,而不是HTML。
任何人都知道这样做的插件,或者有关于如何使用Grunt进行操作的建议?
答案 0 :(得分:1)
在我们目前的项目中,我们有几个不同的环境。对于它们中的每一个,我们可以为requirejs构建指定不同的配置设置。
为了区分这些不同的环境,我使用了参数target
。
你可以通过将它附加到你的电话中来简单地传递给grunt,如
grunt --target=debug
您可以使用grunt.option
访问Gruntfile中的此参数,例如
var target = (grunt.option('target') || 'debug').toLowerCase();
上面的行将默认为debug
。然后,您可以使用requirejs的paths
配置设置将构建指向正确的模块。下面的示例代码。
requirejs: {
compile: {
options: {
paths: {
"your/path/to/amplify/request": target === "debug" ? "path/to/mock" : "path/to/real",
}
}
}
}