2016-10-28 10 views
0

커맨더 플러스와 함께 노드 cli 도구를 쓰고 있습니다. 꿀꺽 꿀꺽 마시는 사령관 플러스

import program from 'commander-plus'; 

const prompts = ['a', 'b', 'c']; 
program.choose(prompts, (index) => { 
    // never returns; 
}); 

그리고는 꿀꺽 작업으로 우리가 .env의로드하는 대부분의 편리 때문에 변수를 실행하기를 원하지만 개발에만.

import env from 'gulp-env'; 
gulp.task('env',() => { 
    env(); 
}); 

처음에는 꿀꺽 꿀꺽 마심으로 노력했습니다. 나는 실제로 비슷한 스크립트를 사용하여 잘 작동하는 nodemon을 시작합니다. cli 스크립트는 잘 실행되지만 사령관 플러스는 키보드 입력을 듣지 않습니다.

import shell from 'gulp-shell'; 
import gulp from 'gulp'; 

gulp.task('cli', ['env'], shell.task([ 
    'babel-node src/cli', 
])) 

나중에이 중 하나가 작동하는 것으로 가정되었거나 이제는 고정되어 있습니다. https://github.com/sun-zheng-an/gulp-shell/issues/10

또한 꿀꺽 꿀꺽 마술 녀석은 블랙리스트에 올라 있으며 대신 gulp-exec 또는 child_process.exec를 시도하는 것이 좋습니다.

import { exec } from 'child_process'; 
gulp.task('cli', ['env'], done => { 
    exec('babel-node src/server/cli', done); 
}); 

답변

0

분명히 gulp-bg가 작동 옵션입니다. 이를 통해 우리는 여전히 꿀꺽 마저하는 개발자 작업을 계속 수행 할 수 있으며 전적으로 생산 과정에서 dotenv를 피할 수 있습니다.

import bg from 'gulp-bg'; 
import gulp from 'gulp'; 

gulp.task('cli', ['env'], bg('node', './src/cli')); 
0

답이 맞는지는 모르겠지만 node-dotenv를 사용하여 발견되었습니다. 꿀꺽 마시지 않고.

우선 내가 내 서버 및 CLI 도구에서 다음

// only set default for env 
configExport.env = process.env.NODE_ENV || 'development'; 
// and a lot of other variables 

그리고 모두 같은 난이 필요한 경우에만 .env의로드 보이는 설정 파일을 가지고있다. .env의 파일을 찾을 수없는 경우

import dotenv from 'dotenv' 
import config from '../server/config'; 
if(config.env === 'development'){ 
    dotenv.load(); 
} 

dotenv은 실패하지 않습니다,하지만 경우 체크 여분의 이유는, 내가 .env의이 사고로 배치받을 수있는 걱정이다.

또한 .env가 적절한 .ignores (.gitignore, modulusignore, .dockerignore)와 함께 배포되지 않았고 작업을 수행해야하는지 확인해야합니다.