UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

57 lines (49 loc) 1.6 kB
const fs = require('fs-extra'); const path = require('path'); const mkdirp = require('mkdirp'); const readline = require('readline'); const rimraf = require('rimraf'); const gulp = require('gulp'); function copyExample(cwd) { const _siteDir = path.join(cwd, '_site'); 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(cwd) { const _siteDir = path.join(cwd, '_site'); gulp.src(['mock']).pipe(gulp.dest(_siteDir)); } function copyPublicConfig(cwd) { const _siteDir = path.join(cwd, '_site'); gulp.src(['site/public-config.js']).pipe(gulp.dest(_siteDir)); } class CopyExample { constructor(opts = {}) { this.cwd = path.join(__dirname, '../'); this._site = path.join(this.cwd, '_site'); this._examples = path.join(this._site, 'examples'); } apply(compiler) { const ID = 'generator-test-txt'; const _ = this; const { _site, _examples, cwd } = this; compiler.hooks.done.tap(ID, compilation => { copyExample(this.cwd); copyMock(this.cwd); // copyPublicConfig(this.cwd); }); } } module.exports = CopyExample;