2016-04-08 65 views
0

我們需要通過提示來選擇哪個是用戶選擇的環境。 我有這樣的代碼:我的吞嚥任務總是返回我一樣的選項

var gulp = require('gulp'); 
var clean = require('gulp-clean'); 
var uglify = require('gulp-uglify'); 
var rename = require('gulp-rename'); 
var gutil = require('gulp-util'); 
var order = require("gulp-order"); 
var concat = require("gulp-concat"); 
var ftp = require('gulp-ftp'); 
var prompt = require('gulp-prompt'); 



gulp.task('deploy', function() { 
    gulp.src('app/dist/custom.js') 
    .pipe(prompt.prompt({ 
     type:'text', 
     name: 'env', 
     message: 'Where dou you want toy deploy? (stage/live/test)', 
     validate: function(env){ 

      if(env === 'STAGE' || 'stage'){ 
       gutil.log('STAGE deployment'); 
       return true; 
      } 
      if(env === 'LIVE' || 'live'){ 
       gutil.log('LIVE deployment'); 
       return true; 
      } 
      if(env == 'TEST' || 'test'){ 
       gutil.log('TEST deployment'); 
       return true; 
      } 

     } 
    })); 
}); 

gulp.task('default', ['deploy']); 

但是,如果有人想選擇任何enviromment ...回調總是說... 「階段的部署」。

但如果我更改代碼,它的工作原理:

var gulp = require('gulp'); 
var clean = require('gulp-clean'); 
var uglify = require('gulp-uglify'); 
var rename = require('gulp-rename'); 
var gutil = require('gulp-util'); 
var order = require("gulp-order"); 
var concat = require("gulp-concat"); 
var ftp = require('gulp-ftp'); 
var prompt = require('gulp-prompt'); 



gulp.task('deploy', function() { 
    gulp.src('app/dist/custom.js') 
    .pipe(prompt.prompt({ 
     type:'text', 
     name: 'env', 
     message: 'Where dou you want toy deploy? (stage/live/test)', 
     validate: function(env){ 

      if(env === 'STAGE'){ 
       gutil.log('STAGE deployment'); 
       return true; 
      } 
      if(env === 'LIVE'){ 
       gutil.log('LIVE deployment'); 
       return true; 
      } 
      if(env == 'TEST'){ 
       gutil.log('TEST deployment'); 
       return true; 
      } 

     } 
    })); 
}); 

gulp.task('default', ['deploy']); 

但我想用大寫小寫&選項...任何人都看這個問題?

BR, 基督教

回答

0

你需要測試平等在||兩側:在布爾環境

if(env === 'STAGE' || env === 'stage'){ 
    gutil.log('STAGE deployment'); 
    return true; 
} 
if(env === 'LIVE' || env === 'live'){ 
    gutil.log('LIVE deployment'); 
    return true; 
} 
if(env == 'TEST' || env === 'test'){ 
    gutil.log('TEST deployment'); 
    return true; 
} 

評估一個非空字符串像'stage'計算爲truthy,這使得無論env具有什麼值,您的整個OR表達式env === 'STAGE' || 'stage'評估爲true

+0

對不起這是真的,基本的js,昨天是累了,jajajaj謝謝Sven – Luiggi