UNPKG

brain-cli

Version:

A command line tool used to run projects

154 lines (151 loc) 5.78 kB
import WebpackDevServer from "webpack-dev-server"; import { OptimizationOptions,ResolveOptions } from "webpack/declarations/WebpackOptions" export interface IDllConfigType { } export namespace eWebpackConfig { interface dllConfigType { /** 当设置了此值,则 index.html dll 文件 url 变成外部链接 */ externalUrl?: string; /** 需要打包到 dll 文件的库 */ value: string[]; options?: dllCompileOptions; } interface customDllType extends dllConfigType { /** dll 文件名称 */ key: string; } interface dllCompileOptions { output?: { libraryTarget?: 'umd' | 'var' | 'commonjs2' | 'commonjs' | 'amd' | 'window' | 'global' | 'this', //当使用了 libraryTarget: "umd",设置:true 会对 UMD 的构建过程中的 AMD 模块进行命名。否则就使用匿名的 define。 umdNamedDefine?: boolean; // globalObject为改变全局指向 globalObject?: 'this' }, plugins?: []; /** 当设置了此值,则 index.html dll 文件 url 变成外部链接 */ externalUrl?: string; } interface dllConfig { /** 默认dll 文件,需要打到dll 文件的JS库 */ vendors: string[] | dllConfigType /** 自定义dll */ customDll?: customDllType[] /** 全局生效配置 * * 当在 dllConfig,配置了该参数,即可生效到所有 dll 文件,等同于配置了 options 参数,当 dll 文件指定了自身局部配置数据,则生效局部数据 */ compileOptions: dllCompileOptions } interface extendConfig { isDev: boolean, /** 加载器类型 */ type: 'hot_loader' | 'js_loader' | 'ts_loader' | 'style_loader'|'module_rule', transform?: { /** 内部css modules 默认值 */ readonly cssModule: Object, /** 内部默认postcss_loader加载器参数 */ readonly postcss_loader: Object, /** 内部通用生成loader use 值函数 */ execution: (cssModule,loader,postcss_loader) => any } } interface happyPack { /** 代表开启几个子进程去处理这一类型的文件,默认是3个,类型必须是整数。 */ threads?: Number; /** 是否允许 HappyPack 输出日志,默认是 true。 */ verbose?: Boolean; /** 代表共享进程池,即多个 HappyPack 实例都使用同一个共享进程池中的子进程去处理任务,以防止资源占用过多。 */ threadPool?: any; /** 开启webpack --profile ,仍然希望HappyPack产生输出。 */ verboseWhenProfiling?: boolean; /** 启用debug 用于故障排查。默认 false。 */ debug?: boolean; } export interface config { dllConfig: dllConfig /*** 是否禁用热加载 */ disableReactHotLoader: boolean; /** 默认值common 正常情况下,无需关注,主要会把node_modules下文件打到此模块 */ commonsChunkPlugin?: string[]; /** 多线程配置参数 */ happyPack?: { open: boolean; /** js 线程配置 */ procJs?: happyPack; /** ts 线程配置 */ procTs?: happyPack; procStyle?: happyPack; } /** * 插件信息 */ plugins?: ResolveOptions['plugins']; output?: { library?: (name: string) => string | string; libraryTarget?: 'var' | 'window' | 'this' | 'umd'; }; resolve?: ResolveOptions; /** * webpack 4 代码模块优化配置 */ optimization?: OptimizationOptions; /** * ts 处理插件 */ tsCompilePlugin: { loader: 'ts-loader', /** https://github.com/TypeStrong/ts-loader#loader-options */ option?: any }, /** * * 扩展loader加载器 * * 如果config.type ==='module_rule' 则loader 参数值指向module.rule 数组加载器 */ extend?: (loaders: any[],config: extendConfig) => void; css?: { /** loader include */ loader_include: string[]; }; } } export declare class config { /** 应用名称,通常使用package.json.name */ name: string; /** 浏览器中自动打开启动服务页面,默认true */ open: boolean; /** 服务启动默认端口号,默认8001 */ defaultPort: number; /** 服务地址,在需要填入域名或者提供外部访问时填写,默认0.0.0.0 */ server: string; /** 图片文件限制大小,小于此值时图片会被处理成base64,默认8192 */ imageInLineSize: number; /** 是否启用tslint,默认true */ isTslint: boolean; /** devServer.publicPath,默认 /public/*/ publicPath: string; /** 开发服务拓展配置 */ devServer: WebpackDevServer.Configuration; postcss?: { /** 参考postcss-loade 插件配置 */ autoprefixer: any; /** postcss-plugin-px2rem 插件配置 */ px2rem: any; } webpack: eWebpackConfig.config; htmlWebpackPlugin: { /** 页面标题 */ title: string }; /** babel 插件配置,直接谷歌查询babel.query 文档 */ babel: { /** 直接谷歌查询babel.query 文档 */ query: any; /** js ts loader 加载器 include会注入到ts loader 及js loader */ loader_include:string[] }; /** 在编译运行时指定需要的模块入口 */ apps: string[] } export declare function eConfig(params: config): config export { };