2017-01-10 8 views
0

AngularJSサービスからgulpfile変数へのアクセス私は頻繁にコメントし、URLbase()のパスのコメントを外すことを忘れてしまいます。ガルプは私がWebサービスに自分の要求を管理し、実際に私は、このサービスにWebサービスのURLを定義しているサービスがある

gulpfile.jsでこれを行う方法はありますか?オン

gulpfile.js私は開発のためのまたは生産用にビルドするには、2つの異なるタスクを持っていると私は、その管理が行わことができれば、それは良かったと思った:

gulp.task('build-development', function (done) 
{ 
    config.minify = false; 

    var tasks = ['html', 'resources', 'assets', 'sass', 'js', 'vendors']; 
    seq('clean', tasks, done); 
}); 

gulp.task('build-production', function (done) 
{ 
    config.minify = true; 

    var tasks = ['html', 'resources', 'assets', 'sass', 'js', 'vendors']; 
    seq('clean', tasks, function() { 
     notifier.notify({ title: 'Project publishment', message: 'Done' }); 
    }); 
}); 

私はすでに私のgulpfile.jsに変数を作成しようとしましたAngularJSファイルにアクセスしましたが、変数が定義されていないというエラーが表示されました。

答えて

1

あなたのWebサービスでプレースホルダを使用します。

var URLbase = function() 
{ 
    return "URL_BASE_FOR_WEBSERVICE"; 
} 

は、あなたのconfigオブジェクトに両方のURLを追加します。あなたのjsタスクの使用gulp-replaceで最後に

gulp.task('build-development', function (done) 
{ 
    config.minify = false; 
    config.urlBaseForWebService = "http://localhost/MyProject/Service.svc/"; 

    var tasks = ['html', 'resources', 'assets', 'sass', 'js', 'vendors']; 
    seq('clean', tasks, done); 
}); 

gulp.task('build-production', function (done) 
{ 
    config.minify = true; 
    config.urlBaseForWebService = "http://myproject.link.pt/Service/Service.svc/"; 

    var tasks = ['html', 'resources', 'assets', 'sass', 'js', 'vendors']; 
    seq('clean', tasks, function() { 
     notifier.notify({ title: 'Project publishment', message: 'Done' }); 
    }); 
}); 

config.urlBaseForWebServiceの値でURL_BASE_FOR_WEBSERVICEプレースホルダを交換します:

var replace = require('gulp-replace'); 

gulp.task('js', function() { 
    return gulp.src('src/js/**/*.js') 
    .pipe(replace(/URL_BASE_FOR_WEBSERVICE/, config.urlBaseForWebService)) 
    .pipe(gulp.dest('dist/js')); 
}); 
+0

本当に良い解決策。完璧に動作します!どうもありがとう – Ninita

関連する問題