gpt4 book ai didi

angularjs - 使用 Gruntjs 配置 Restangular.baseUrl

转载 作者:行者123 更新时间:2023-12-02 21:55:29 25 4
gpt4 key购买 nike

我在使用 Gruntjs 构建的项目中使用 Restangular。这是一个片段:

// scripts/app.js

angular.module('myApp', ['restangular'])])
.config(['RestangularProvider', function(RestangularProvider) {

/* this is different on dev, test, prod environments */
var baseUrl = 'http://localhost:8080/sms-api/rest/management/';

RestangularProvider.setBaseUrl(baseUrl);
}])

如果在 cli 中指定,我希望 baseUrl 具有不同的值;如果未指定,则使用默认值:

$ grunt server
Using default value for 'baseUrl'

$ grunt build --rest.baseUrl='http://my.domain.com/rest/management/'
Using 'http://my.domain.com/rest/management/' for 'baseUrl'

我怎样才能做到这一点?

最佳答案

Grunt preprocess 的帮助下这是可能的这对于替换文件内的模板(和其他内容)很有用。

首先将其添加到您的 .js 代码中:

/* Begin insertion of baseUrl by GruntJs */
/* @ifdef baseUrl
var baseUrl = /* @echo baseUrl */ // @echo ";"
// @endif */

/* @ifndef baseUrl
var baseUrl = 'http://www.fallback.url';
// @endif */
/* End of baseUrl insertion */

然后在你的 grunt 文件中,安装 grunt preprocess 后(即 npm install grunt-preprocess --save-dev ),添加以下配置:

 preprocess: {
options: {
context: {

}
},
js: {
src: 'public/js/services.js',
dest: 'services.js'
}
},

显然,您需要根据您使用的文件更新 js 文件列表。 重要注意事项 - 如果您计划更新同一文件(而不是更新到新的目的地),则需要使用内联选项

最后,为了使用命令行配置变量,请将以下自定义任务添加到您的 grunt 文件中:

grunt.registerTask('baseUrl', function () {
var target = grunt.option('rest.baseUrl') || undefined;
grunt.log.ok('baseUrl is set to', target);
grunt.config('preprocess.options.context.baseUrl', target);
grunt.task.run('preprocess');
});

最后,像这样运行 baseUrl 任务:

grunt baseUrl --rest.baseUrl='http://some.domain.net/public/whatever'

请注意,我输入了一个后备 URL,以便您也可以运行 grunt baseUrl 并且 grunt 会将您的 baseUrl 设置为您定义的 URL。

关于angularjs - 使用 Gruntjs 配置 Restangular.baseUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com