UNPKG

vue-cli-plugin-winupon

Version:

winpuon vue-cli3 plugin

105 lines (103 loc) 3.33 kB
const fs = require("fs"); module.exports = (api, opts, rootOptions) => { const utils = require("./utils")(api); // 使用 wpFront 模板 if (opts.frame === "WpFront") { if (opts.platform === "webapp") { api.render("./templates/wpFront/webpapp"); } else if (opts.platform === "pc") { api.render("./templates/wpFront/pc"); } if (opts.winuponUI) { } // 使用 vue-cli 模板 } else if (opts.frame === "vueCli") { // 使用移动端 if (opts.platform === "webapp") { api.extendPackage({ devDependencies: { axios: "^0.19.0", cssnano: "^3.10.0", "cssnano-preset-advanced": "^4.0.7", fastclick: "^1.0.6", "postcss-aspect-ratio-mini": "0.0.2", "postcss-import": "^12.0.1", "postcss-preset-env": "^6.6.0", "postcss-px-to-viewport": "0.0.3", "postcss-url": "^8.0.0", "postcss-viewport-units": "^0.1.6", "postcss-write-svg": "^3.0.1", vconsole: "^3.3.0", "viewport-units-buggyfill": "^0.6.2" } }); api.injectImports(api.entryFile, [ `import fastclick from "fastclick";`, `import VConsole from "vconsole";`, `import fetch from "./utils/request";` ]); api.render({ "./src/App.vue": "./templates/vueCli/webapp/src/App.vue", "./.browserslistrc": "./templates/vueCli/webapp/.browserslistrc", "./postcss.config.js": "./templates/vueCli/webapp/postcss.config.js", "./src/utils/request.js": "./templates/vueCli/webapp/src/utils/request.js" }); utils.addJsData(api.entryFile, [ ``, `fastclick.attach(document.body);`, `const vConsole = new VConsole();`, `Vue.use(fetch);` ]); utils.updateVueConfig({ publicPath: "./", devServer: { // 设置代理 proxy: { "/api": { target: "https://host:port", secure: false, changOrigin: true, pathRequiresRewrite: { "^/api": "/" } } } } }); // 使用pc端 } else if (opts.platform === "pc") { api.extendPackage({ devDependencies: { axios: "^0.19.0", cssnano: "^3.10.0", "cssnano-preset-advanced": "^4.0.7", "postcss-aspect-ratio-mini": "0.0.2", "postcss-import": "^12.0.1", "postcss-preset-env": "^6.6.0", "postcss-url": "^8.0.0", vconsole: "^3.3.0" } }); api.render({ "./src/App.vue": "./templates/vueCli/pc/src/App.vue", "./.browserslistrc": "./templates/vueCli/pc/.browserslistrc", "./postcss.config.js": "./templates/vueCli/pc/postcss.config.js", "./src/utils/request.js": "./templates/vueCli/pc/src/utils/request.js" }); } if (opts.winuponUI) { } } api.onCreateComplete(() => { if (opts.frame === "WpFront") { fs.rename( api.resolve("./packages/module"), api.resolve(`./packages/${opts.name}`), err => { if (err) throw err; } ); } }); };