2016-04-08 42 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