UNPKG

@mega-apps/cli

Version:

Mom builder for all mega modules apps. The recommended basic operation dependency package is attached, and users can check and repair defects in actual applications.

103 lines (91 loc) 2.52 kB
#!/usr/bin/env node /** * 参照 node_modules\@vue\cli-service\bin\vue-cli-service.js 源码 * 调用vue-cli-service 启动服务 */ // ----------------------------------------------- // mom-vue components process try { const path = require("path"); const fs = require("fs-extra"); const fg = require("fast-glob"); const megaAppsRootDir = path.join(__dirname, "../../"); const componentDestDir = path.join(__dirname, "../src/_mom/components"); const foundMegaMomComponents = fg.sync( [`**/mom-vue-component-**`, `!${componentDestDir}/**`], { cwd: megaAppsRootDir, dot: true, onlyDirectories: true, absolute: true, } ); // empty the directory fs.emptyDirSync(componentDestDir); // copy files/dirs to `component dir` foundMegaMomComponents.forEach((src) => fs.copySync(src, path.join(componentDestDir, path.basename(src))) ); } catch (e) { console.error(e); process.exit(1); } // ----------------------------------------------- // vue-cli-service const { semver, error, warn, isPlugin } = require("@vue/cli-shared-utils"); const requiredVersion = require("../package.json").engines.node; if ( !semver.satisfies(process.version, requiredVersion, { includePrerelease: true, }) ) { error( `You are using Node ${process.version}, but vue-cli-service ` + `requires Node ${requiredVersion}.\nPlease upgrade your Node version.` ); process.exit(1); } const Service = require("@vue/cli-service"); const service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd(), { // 注意:这里要特别使用指定的插件,不使用默认值,不需要在应用工程中,加入可选依赖 plugins: [ "@vue/cli-plugin-babel", "@vue/cli-plugin-eslint", "@vue/cli-plugin-router", "@vue/cli-plugin-vuex", "@vue/cli-plugin-typescript", "@vue/cli-plugin-pwa", ] .filter(isPlugin) .map((id) => { let apply = () => {}; try { apply = require(id); } catch (e) { warn(`Optional dependency ${id} is not installed.`); } return { id, apply }; }), }); const rawArgv = process.argv.slice(2); const args = require("minimist")(rawArgv, { boolean: [ // build "modern", "report", "report-json", "inline-vue", "watch", // serve "open", "copy", "https", // inspect "verbose", ], }); const command = args._[0]; service.run(command, args, rawArgv).catch((err) => { error(err); process.exit(1); });