zyk-cli
Version:
生成 React 或 Vue初始代码,生成 webpack 配置,以及配置 webpack 优化项
89 lines (82 loc) • 2.09 kB
text/typescript
import inquirer, { QuestionCollection } from "inquirer";
import { generateTemplate, generateWebpackConfig } from "./generate";
import Options from "utils/options";
const opts = Options.getInstance();
const inquiry = async () => {
const promptList: QuestionCollection<any> = [
{
name: "type",
type: "list",
message: "请选择模板类型",
choices: [
{
name: "React",
value: "React",
},
{
name: "Vue",
value: "Vue",
},
],
},
{
name: "isCompatibleCss3",
type: "confirm",
message: "是否给css添加浏览器前缀",
},
{
name: "isCompatibleLowBrowser",
type: "confirm",
message: "是否兼容低版本浏览器",
},
{
name: "isCompatibleDecorator",
type: "confirm",
message: "是否兼容类装饰器语法",
},
{
name: "optimizationItems",
type: "checkbox",
message: "请选择需要的优化项",
choices: [
{
name: "开启文件缓存",
value: "isOpenStorageCache",
checked: true,
},
{
name: "开启多线程loader解析",
value: "isOpenThreadLoader",
checked: true,
},
{
name: "抽离css文件",
value: "isPulloutCssFile",
checked: true,
},
{
name: "压缩css和js文件",
value: "isCompressJsAndCssFile",
checked: true,
},
{
name: "清理未使用css样式",
value: "isTreeShakingCss",
checked: true,
},
{
name: "开启gzip压缩",
value: "isCreateGzipFile",
checked: true,
},
],
},
];
const options = await inquirer.prompt(promptList);
for (const [k, v] of Object.entries(options)) {
opts.set(k, v);
}
generateTemplate();
generateWebpackConfig();
};
export default inquiry;