const gulp = require('gulp') const del = require('del') const uglify = require('gulp-uglify') const babel = require('gulp-babel') const rename = require('gulp-rename') const replace = require('gulp-replace') const sourcemaps = require('gulp-sourcemaps') const ts = require('gulp-typescript') const pack = require('./package.json') const exportModuleName = 'VXETablePluginExportXLSX' gulp.task('build_commonjs', function () { return gulp.src(['index.d.ts', 'depend.ts', 'index.ts']) .pipe(sourcemaps.init()) .pipe(ts({ strict: true, moduleResolution: 'node', noImplicitAny: true, target: 'es6', lib: ['dom', 'es6'] })) .pipe(babel({ presets: ['@babel/env'] })) .pipe(rename({ basename: 'index', extname: '.common.js' })) .pipe(sourcemaps.write()) .pipe(gulp.dest('dist')) }) gulp.task('build_umd', function () { return gulp.src(['index.d.ts', 'depend.ts', 'index.ts']) .pipe(ts({ strict: true, moduleResolution: 'node', noImplicitAny: true, target: 'es6', lib: ['dom', 'es6'] })) .pipe(replace(`import XEUtils from 'xe-utils/methods/xe-utils';`, `import XEUtils from 'xe-utils';`)) .pipe(babel({ moduleId: pack.name, presets: [ '@babel/env' ], plugins: [ ['@babel/transform-modules-umd', { globals: { [pack.name]: exportModuleName, 'xe-utils': 'XEUtils', 'xlsx': 'XLSX' }, exactGlobals: true }] ] })) .pipe(replace(`global.${exportModuleName} = mod.exports;`, `global.${exportModuleName} = mod.exports.default;`)) .pipe(gulp.dest('dist')) .pipe(uglify()) .pipe(rename({ extname: '.min.js' })) .pipe(gulp.dest('dist')) }) gulp.task('clear', () => { return del([ 'dist/depend.*' ]) }) gulp.task('build', gulp.series(gulp.parallel('build_commonjs', 'build_umd'), 'clear'))