2016-04-08 10 views
0

Wir müssen nach Eingabeaufforderung auswählen, welche die Umgebung ist, die vom Benutzer ausgewählt wurde. Ich habe diesen Code:Meine Schluckaufgabe gibt mir immer die gleiche Option zurück

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']); 

Aber wenn jemand möchte jede enviromment wählen ... der Rückruf immer sagt ... 'STAGE Deployment'.

Aber wenn ich den Code ändern, es funktioniert:

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']); 

Aber ich möchte die Optionen mit Groß & Klein ... Wer das Problem aussieht?

BR, Christian

Antwort

0

Sie müssen sich für die Gleichstellung auf beiden Seiten des || testen:

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; 
} 

eine nicht leere Zeichenfolge wie 'stage' in einem Booleschen Kontext Auswertung ausgewertet truthy, was macht Ihr gesamter OR-Ausdruck env === 'STAGE' || 'stage' wird auf true ausgewertet, unabhängig davon, welchen Wert env hat.

+0

Entschuldigung es ist wahr, grundlegende js, gestern war zu müde, jajajaj danke Sven – Luiggi

Verwandte Themen