UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

115 lines (106 loc) 2.7 kB
'use strict'; const webpack = require('webpack'); const through2 = require('through2'); const path = require('path'); const gulp = require('gulp'); const readline = require('readline'); const fs = require('fs-extra'); const rimraf = require('rimraf'); const mkdirp = require('mkdirp'); const cwd = process.cwd(); const _siteDir = path.join(cwd, '_site'); function dist(done) { rimraf.sync(_siteDir); process.env.RUN_ENV = 'PRODUCTION'; const webpackConfig = require(path.join(cwd, 'webpack.site.config.js')); webpack(webpackConfig, (err, stats) => { if (err) { console.error(err.stack || err); if (err.details) { console.error(err.details); } return; } const info = stats.toJson(); if (stats.hasErrors()) { console.error(info.errors); } if (stats.hasWarnings()) { console.warn(info.warnings); } const buildInfo = stats.toString({ colors: true, children: true, chunks: false, modules: false, chunkModules: false, hash: false, version: false, }); // console.log(buildInfo); done(0); }); } function copyHtml() { fs.writeFileSync(path.join(cwd, '_site/404.html'), fs.readFileSync(path.join(cwd, 'site/404.html'))); fs.writeFileSync(path.join(cwd, '_site/index-cn.html'), fs.readFileSync(path.join(cwd, '_site/index.html'))); } function copyExample() { const examples = ['site/dev-demo/**/*.vue', 'biz/*/examples/*vue', 'components/**/examples/*.vue']; gulp.src(examples).pipe( gulp.dest(function(file) { const filePath = file.path; const relativePath = filePath.replace(cwd, ''); const reg = /^\/(components|biz)/; let pth = relativePath; if (reg.test(relativePath)) { pth = relativePath.replace(/^\/(components|biz)/, '').replace('examples/', ''); file.dirname = path.dirname(file.dirname); } return path.join(_siteDir, 'examples'); }), ); } function copyMock() { gulp.src(['mock/**']).pipe(gulp.dest(path.join(_siteDir, 'mock'))); } function copyPublicConfig() { gulp.src(['site/public-config.js']).pipe(gulp.dest(_siteDir)); } gulp.task( '_site', gulp.series(done => { dist(() => { copyHtml(); copyExample(); copyMock(); copyPublicConfig(); done(); }); }), ); gulp.task( '_dist', gulp.series(done => { dist(() => { // copyHtml(); // copyExample(); // copyMock(); // copyPublicConfig(); // done(); }); }), ); gulp.task( 'copy-html', gulp.series(() => { copyExample(); copyPublicConfig(); }), ); gulp.task( 'copy-mock', gulp.series(() => { copyMock(); }), );