2016-12-25 19 views
3

私はアポロからGraphQLサーバをテストし、どのようなことにnodemon統合しています。ここではサンプルファイル構造だ:実行NPMスクリプト

build/ 
src/ 
server.js 

ここに私のNPMスクリプトが何をするのかnpm run startこの

"scripts": { 
    "start": "babel --presets es2015,stage-2 server.js -d build/ && node build/server.js", 
    "dev": "nodemon server.js" // Sample code here 
} 

のように見えることはバベルを使用してbuild/server.jsにES6コードを変換し、それを実行することです。これにより、サーバーが正しく起動されます。

変更が発生した場合は、server.jsまたはsrc/の変更を監視し、サーバーを再起動します。ここでは、変更が発生した場合にnpm run startコマンドを実行します。私の必要とする正しい「ノーデモン」コマンドは何ですか?私がnpm run devのようなコマンドを使って、nodemonを使って開発を開始すると良いでしょう。

答えて

0

あなたは、特定のフォルダの変更を監視して、何かをすることを命令するgulpjsを使用することができます。あなたのサンプルと は、あなたもES6するコードを変換したいです。それはまた、gulp-bableを必要としています。必要に応じてbabel-preset-stage-2を含めることができます。したがって、以下のコードをgulpfile.jsに入れるだけです。

gulp.task('build-es2015',() => { 
    return gulp.src('server.js') 
     .pipe(babel({ 
      presets: ['es2015'] 
     })) 
     .pipe(gulp.dest('build')); 
}); 
gulp.task('watch',() => { 
    gulp.watch(['./app/*.js'], ['build-es2015']) 
}) 

基本的に、タスク 'watch'は特定のファイルを見続けます。それらが保存されると、 'build-es2015'というタスクを実行してes6に変換します。

そしてnodemon、それはgulp-nodemonを必要とし、あなたがgulpfile.js

gulp.task('server',() => { 
    nodemon({ 
    script: 'build/server.js', 
    ext: 'js', 
    ignore: [ 
     'server.js', 
     'node_modules/**', 
     'test/**', 
     'build/**' 
    ] 
    }) 
    .on('restart',() => { console.log(`Server restarted!`) }) 
}) 

に行うことができます上記/ server.js'を構築見続けるだろう。変更されるたびに、nodemonはサーバーを自動的に再起動します。

そしてgulpfile.js

gulp.task('dev', ['server', 'watch']) 

のための最後のピースは、一気コマンドで実行する必要があるタスクを含めます。

$ gulp dev 

またはNPMコマンドで

"scripts": { 
    "start": "gulp dev" 
} 

そうすることができます npm run startにも。

そしてgulpfile.js

const gulp  = require('gulp') 
const babel  = require('gulp-babel') 
const nodemon = require('gulp-nodemon') 
内のすべてのパッケージを必要とすることを忘れてはいけません
関連する問題