   initDir(compilePath)
 )
 
-gulp.task('compile-main', ['compile-init'], ->
+gulp.task('compile-css', ['compile-init'], ->
   compileLang('css', compilePath, compress: true)
+)
+
+gulp.task('compile-html', ['compile-init'], ->
   compileLang('html', compilePath)
-  compileLang('js', compilePath, transform: ['babelify'])
+)
+
+gulp.task('compile-js', ['compile-init'], ->
+  compileJS(compilePath, watch: false)
 )
 
 gulp.task('compile-others', ['compile-init'], ->

  compileLangHandler(thisLang, getSourcePath(thisLang), destDir, options)

compileJS = (destDir, options) ->
  bundledStreamList = []
  thisLang = lang.js

  fs.mkdirsSync(path.join(destDir, thisLang.dest))

  globby(getSourcePath(thisLang), (err, entries) ->
    if err
      console.log(err)
      return false

    bundledStreamList = entries.map((entry) ->
      b = browserify(
        entries: entry
        debug: true
        transform: ['babelify']
      )

      genBundle = () ->
        bundledStream = b.bundle()
          .pipe(vinylSource(entry))

        if options.watch
          return bundledStream
            .pipe(gulp.dest(destDir))
        else
          uglifyStream = plugins.streamify(plugins.uglify())
          return bundledStream
            .pipe(uglifyStream)
            .pipe(gulp.dest(destDir))

      if options.watch
        b = watchify(b)
          .on('update', genBundle)

      return genBundle()
    )
  )

  return es.concat.apply(null, bundledStreamList)

  )
)

gulp.task('compile-zip', ['compile-css', 'compile-html', 'compile-js', 'compile-others'], ->
  gulp.src(path.join(compilePath, '**'))
    .pipe(plugins.zip(argv.version + '.zip'))
    .pipe(gulp.dest('.'))
