@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.
52 lines (41 loc) • 1.31 kB
JavaScript
/**
* 根据文件进行区分,启动不同的runner
* nuxt.config.js 表示是Nuxt项目
* vue.config.js 表示是VueCLI创建的项目
*/
const fs = require("fs");
const { join } = require("path");
const logger = require("./logger");
const {
toolPrefixName,
injectVueLoader,
applyVuePatch,
checkProjectConfigAndSomeFiles,
} = require("./utils");
logger.info(`${toolPrefixName} Starting ...`);
const workdir = process.cwd();
const fnExistFile = (fileName) => fs.existsSync(join(workdir, fileName));
const foundNuxtConfigFile = ["nuxt.config.js", "nuxt.config.ts"].some(
fnExistFile
);
const foundVueConfigFile = ["vue.config.js", "vue.config.ts"].some(fnExistFile);
// 注入Module.prototype.require
require("./inject-module-require.js");
// 注入VueLoader的处理逻辑
injectVueLoader();
// 给Vue打补丁
applyVuePatch();
// 检查工程配置及文件
checkProjectConfigAndSomeFiles(workdir, toolPrefixName);
// 启动
if (foundNuxtConfigFile) {
logger.info(`${toolPrefixName} Starting nuxt.runner ...`);
require("./nuxt.runner");
} else if (foundVueConfigFile) {
logger.info(`${toolPrefixName} Starting vuecli.runner ...`);
require("./vuecli.runner");
} else {
logger.info(`${toolPrefixName} Starting nuxt.runner ...`);
require("./nuxt.runner");
}