| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- const gulp = require('gulp');
- const connect = require('gulp-connect');
- const open = require('gulp-open');
- const header = require('gulp-header');
- const uglify = require('gulp-uglify');
- const sourcemaps = require('gulp-sourcemaps');
- const rollup = require('rollup-stream');
- const buble = require('rollup-plugin-buble');
- const source = require('vinyl-source-stream');
- const buffer = require('vinyl-buffer');
- const rename = require('gulp-rename');
- const modifyFile = require('gulp-modify-file');
- const pkg = require('./package.json');
- const date = (function date() {
- return {
- year: new Date().getFullYear(),
- month: ('January February March April May June July August September October November December').split(' ')[new Date().getMonth()],
- day: new Date().getDate(),
- };
- }());
- const banner = `
- /**
- * SSR Window ${pkg.version}
- * ${pkg.description}
- * ${pkg.homepage}
- *
- * Copyright ${date.year}, ${pkg.author}
- *
- * Licensed under ${pkg.license}
- *
- * Released on: ${date.month} ${date.day}, ${date.year}
- */
- `.trim();
- // UMD DIST
- function umd(cb) {
- const env = process.env.NODE_ENV || 'development';
- rollup({
- input: './src/ssr-window.js',
- plugins: [buble()],
- format: 'umd',
- name: 'ssrWindow',
- strict: true,
- sourcemap: env === 'development',
- banner,
- })
- .pipe(source('ssr-window.js', './src'))
- .pipe(buffer())
- .pipe(gulp.dest(`./${env === 'development' ? 'build' : 'dist'}/`))
- .on('end', () => {
- if (env === 'development') {
- if (cb) cb();
- return;
- }
- gulp.src('./dist/ssr-window.js')
- .pipe(sourcemaps.init())
- .pipe(uglify())
- .pipe(header(banner))
- .pipe(rename('ssr-window.min.js'))
- .pipe(sourcemaps.write('./'))
- .pipe(gulp.dest('./dist/'))
- .on('end', () => {
- if (cb) cb();
- });
- });
- }
- // ES MODULE DIST
- function es(cb) {
- const env = process.env.NODE_ENV || 'development';
- rollup({
- input: './src/ssr-window.js',
- plugins: [buble()],
- format: 'es',
- name: 'ssrWindow',
- strict: true,
- sourcemap: env === 'development',
- banner,
- })
- .pipe(source('ssr-window.js', './src'))
- .pipe(buffer())
- .pipe(rename('ssr-window.esm.js'))
- .pipe(gulp.dest(`./${env === 'development' ? 'build' : 'dist'}/`))
- .on('end', () => {
- if (cb) cb();
- });
- }
- gulp.task('build', (cb) => {
- let cbs = 0;
- umd(() => {
- cbs += 1;
- if (cbs === 2) cb();
- });
- es(() => {
- cbs += 1;
- if (cbs === 2) cb();
- });
- });
- gulp.task('demo', (cb) => {
- const env = process.env.NODE_ENV || 'development';
- gulp.src('./demo/index.html')
- .pipe(modifyFile((content) => {
- if (env === 'development') {
- return content
- .replace('../dist/dom7.min.js', '../build/dom7.js');
- }
- return content
- .replace('../build/dom7.js', '../dist/dom7.min.js');
- }))
- .pipe(gulp.dest('./demo/'))
- .on('end', () => {
- if (cb) cb();
- });
- });
- gulp.task('watch', () => {
- gulp.watch('./src/*.js', ['build']);
- });
- gulp.task('connect', () => connect.server({
- root: ['./'],
- livereload: true,
- port: '3000',
- }));
- gulp.task('open', () => gulp.src('./demo/index.html').pipe(open({ uri: 'http://localhost:3000/demo/index.html' })));
- gulp.task('server', ['watch', 'connect', 'open']);
|