1. const path = require('path')
    2. const gulp = require('gulp')
    3. const less = require('gulp-less')
    4. const rename = require('gulp-rename')
    5. const cleanCss = require('gulp-clean-css')
    6. const babel = require('gulp-babel')
    7. const gulpif = require('gulp-if')
    8. const isProduction = process.env.NODE_ENV === 'production'
    9. const dist = isProduction ? path.join(__dirname, './lib') : path.join(__dirname, './demo/lib')
    10. const src = path.join(__dirname, './src')
    11. const extTypes = ['ts', 'less', 'json', 'axml', 'sjs']
    12. gulp.task('less', () => {
    13. gulp.src(`${src}/**/*.less`)
    14. .pipe(less())
    15. .pipe(gulpif(isProduction, cleanCss()))
    16. .pipe(rename({
    17. extname: '.acss'
    18. }))
    19. .pipe(gulp.dest(dist))
    20. })
    21. gulp.task('ts', () => {
    22. gulp.src(`${src}/**/*.ts`)
    23. .pipe(babel())
    24. .on('error', (err) => {
    25. console.log(err)
    26. })
    27. .pipe(gulp.dest(dist))
    28. gulp.src(`${src}/**/lv.ts`)
    29. .pipe(babel())
    30. .on('error', (err) => {
    31. console.log(err)
    32. })
    33. .pipe(gulp.dest(dist))
    34. })
    35. gulp.task('json', () => {
    36. gulp.src(`${src}/**/*.json`)
    37. .pipe(gulp.dest(dist))
    38. })
    39. gulp.task('axml', () => {
    40. gulp.src(`${src}/**/*.axml`)
    41. .pipe(gulp.dest(dist))
    42. })
    43. gulp.task('sjs', () => {
    44. gulp.src(`${src}/**/*.sjs`)
    45. .pipe(gulp.dest(dist))
    46. })
    47. gulp.task('build', extTypes)
    48. gulp.start('build')
    49. if (!isProduction) {
    50. console.log('Start watching')
    51. extTypes.forEach((type) => {
    52. const watcher = gulp.watch('src/**/*.' + type, { cwd: __dirname })
    53. watcher.on('change', (event) => {
    54. gulp.start(type)
    55. const d = new Date()
    56. console.log(`${d.toLocaleString()} File ` + event.path + ' was ' + event.type)
    57. })
    58. })
    59. }