UNPKG

@egova/vue-cli-plugin-egova-starter-template

Version:
119 lines (108 loc) 3.36 kB
const fs = require("fs-extra") const path = require("path") const dir = __dirname + "/template/" const base = process.cwd() const rimraf = dir_path => { if (fs.existsSync(dir_path)) { fs.readdirSync(dir_path).forEach(function(entry) { var entry_path = path.join(dir_path, entry) if (fs.lstatSync(entry_path).isDirectory()) { rimraf(entry_path) } else { fs.unlinkSync(entry_path) } }) fs.rmdirSync(dir_path) } } const walk = (p, fileCallback, errCallback) => { fs.readdir(p, (err, files) => { if (err) { errCallback(err) return } files.forEach(file => { const fullPath = path.join(p, file) if (fs.statSync(fullPath).isDirectory()) { walk(fullPath, fileCallback) } else { fileCallback(fullPath) } }) }) } module.exports = (api, opts) => { try { if (opts.deleteSrc) { rimraf(path.join(base, "src")) } let filename = path.join(base, "webpack.lib.conf.js") if (fs.existsSync(filename)) { fs.unlinkSync(filename) } } catch (error) {} api.extendPackage({ dependencies: { axios: "^0.18.0", "flagwind-core": "^1.1.0", "@egova/flagwind-echarts": "^1.0.1", "@egova/flagwind-web": "^1.0.14", iview: "^3.2.2", echarts: "^4.1.0", "js-cookie": "^2.2.0", vue: "^2.5.22", "vue-class-component": "^6.0.0", "vue-property-decorator": "^7.0.0", "vue-router": "^3.0.2", vuex: "^3.1.0" }, devDependencies: { "@egova/vue-cli-plugin-dll": "^1.1.7", "@types/js-cookie": "^2.2.1", "@types/node": "^11.9.4", "@vue/cli-plugin-babel": "^3.4.0", "@vue/cli-plugin-typescript": "^3.4.0", "@vue/cli-service": "^3.4.0", "add-asset-html-webpack-plugin": "^3.1.3", "compression-webpack-plugin": "^2.0.0", "friendly-errors-webpack-plugin": "^1.7.0", "raw-loader": "^1.0.0", sass: "^1.17.0", "sass-loader": "^7.1.0", "style-resources-loader": "^1.2.1", "tslint-config-flagwind": "^1.0.1", "tslint-loader": "^3.5.4", typescript: "^3.3.3", "vue-cli-plugin-style-resources-loader": "^0.1.3", "vue-template-compiler": "^2.5.21", "webpack-cli": "^3.2.3" }, scripts: { serve: "vue-cli-service serve", build: "vue-cli-service build", lint: "vue-cli-service lint", "build:serve": "http-server ./dist -a 127.0.0.1 -p 5050", dll: "vue-cli-service dll" } }) api.render("./template") let templates = [] const fileCallback = path => { const simplePath = path.replace(dir, "") templates.push(simplePath) } const errCallback = err => console.log("Receive err:" + err) walk(dir, fileCallback, errCallback) api.postProcessFiles(files => { const fileList = Object.keys(files) const srcFileList = fileList.filter(file => /^src\\/.test(file)) const originals = srcFileList.filter( file => !templates.includes(file) && !/^src\/legacy\ /.test(file) ) originals.forEach(file => { const currentPath = api.resolve(file) const newPath = currentPath.replace("/src/", "/src/legacy/") fs.move(currentPath, newPath) }) }) }