Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. var gulp = require('gulp')
  2. var ts = require('gulp-typescript')
  3. var sass = require('gulp-sass')
  4. var spawn = require('child_process').spawn
  5. var node
  6.  
  7. //경로 설정
  8. var paths = {
  9. ts: 'src/**/*.ts',
  10. sass: 'src/**/*.sass',
  11. dest: 'app/',
  12. server: 'app/index.js'
  13. }
  14.  
  15.  
  16. //타입스크립트 파일을 컴파일하는 기능
  17. gulp.task('compile-ts', function () {
  18. return gulp.src(paths.ts)
  19. .pipe(ts())
  20. .pipe(gulp.dest(paths.dest))
  21. })
  22.  
  23. //sass 파일을 컴파일하는 기능
  24. gulp.task('compile-sass', function() {
  25. return gulp.src(paths.sass)
  26. .pipe(sass())
  27. .pipe(gulp.dest(paths.dest))
  28. })
  29.  
  30.  
  31. //서버를 실행/재실행하는 기능
  32. gulp.task('server', function() {
  33. if (node) node.kill() //이미 실행되어있는 경우 환기
  34. node = spawn('node', [paths.server], {stdio: 'inherit'})
  35. node.on('close', function (code) {
  36. if (code === 8) {
  37. gulp.log('에러가 발견되었습니다. 해결을 기다리는 중...')
  38. }
  39. })
  40. })
  41.  
  42.  
  43. gulp.task('watch', function () {
  44. //타입스크립트 파일이 변경되면 자동으로 컴파일한다
  45. gulp.watch(paths.ts, ['compile-ts'])
  46. //sass 파일이 변경되면 자동으로 컴파일한다
  47. gulp.watch(paths.sass, ['compile-sass'])
  48.  
  49. //서버 파일이 변경되면 자동으로 재실행한다
  50. gulp.watch(paths.server, ['server'])
  51. })
  52.  
  53.  
  54. //gulp 기본 실행 시 server와 watch의 기능을 실행한다
  55. gulp.task('default', [
  56. 'server',
  57. 'watch'
  58. ])
  59.  
  60. //node 오류가 발생하면 청소한다
  61. process.on('exit', function() {
  62. if (node) node.kill()
  63. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement