UNPKG

fastchar-appjs

Version:

快速搭建VUE项目工具类的基本库,主要用于每个功能页面独立生成html,不使用vue单页面功能。

341 lines (340 loc) 10.9 kB
/** * 项目相关操作 * @author Janesen */ export declare class System { /** * 项目标题 */ static projectTitle: string; /** * 项目的全局配置对象,将会自动注入到全局变量中 */ static projectGlobalConfig: any; /** * 项目编辑的配置,只读 {@link BuildOption} */ static buildOption: any; /** * 获取默认的vue配置文件 * @param dirName 项目根目录,建议取值 {@link __dirname} * @param options 更多选项配置 {@link BuildOption} */ static getDefaultVueConfig(dirName: string, options?: BuildOption): any; /** * 是否是 vue-cli-service build 命令构建模式 */ static isVueCliServerBuild(): boolean; /** * 是否是 vue-cli-service server 命令构建模式 */ static isVueCliServerServer(): boolean; /** * 是否是正式版本,production */ static isProduction(): boolean; /** * 是否的打包开发版本,development */ static isDevelopment(): boolean; /** * 是否的打包测试版本,test */ static isVueTest(): boolean; /** * 获取运行脚本 npm_lifecycle_script 里的参数值,例如:--model production 参数名:--model 参数值:production * @param argument */ static getScriptArgumentValue(argument: string): string | null; /** * 获取命令参数 --src */ static getSrcPageDir(): string | null; /** * 获取命令参数 --out */ static getOutPageDir(): string | null; /** * 获取命令参数 --debug 的值 */ static isServiceDebug(): boolean; /** * 获取打包支持的支付方式,避免ios上架失败,不允许支付宝支付等功能 */ static getServicePay(): string[]; /** * 设置全局变量值 * @param key 变量名 * @param data 变量值 */ static setGlobalConfig(key: string, data: any): void; /** * 设置FastServer请求接口的全局默认参数 * @param data 参数对象 */ static setFinalParams(data: any): void; /** * 彻底删除指定目录文件 * @param path */ static removeFile(path: any): void; } /** * 页面相关操作 */ export declare class Pages { /** * 获取vue页面配置,vue.config.js 中的pages配置 * @param dirName 项目的根目录 * @param options 更多配置 */ static getBuildPages(dirName: string, options?: BuildOption): any; /** * 获取页面下config.json配置文件 * @param pagePath * @param options */ static getPageConfig(pagePath: string, options: BuildOption): any; /** * 创建默认的index索引页面 * @param pagesValue * @param dirName * @param options */ static createIndexPage(pagesValue: string, dirName: string, options?: BuildOption): any; /** * 快速复制一个vue子页面开发 * @param dirName 项目根目录 * @param copyPageName 复制目标的文件夹名 * @param newPageName 新生成的文件夹名 * @param options */ static copyPage(dirName: string, copyPageName: string, newPageName: string, options?: BuildOption): void; } /** * 全局注入脚本插件 */ export declare class FastInjectJsPlugin { private readonly options; constructor(options: any); filter(key: string, targetFilter: any): boolean; injectArray(local: any, entry: any, targetInjectJsFiles: any): void; injectObject(local: any, entry: any, targetInjectJsFiles: any): void; apply(compiler: any): void; } /** * 获取编译配置的选项配置,配置选项如下: * <br/> * {@link projectTitle } 项目名称 * <br/> * {@link projectPagesDir } 项目存储页面的目录地址 默认:src/pages * <br/> * {@link projectOutDir } 项目默认编译输出地址 默认:dist * <br/> * {@link projectAssetsDir } 项目资源路径,默认:assets * <br/> * {@link pageTemplateFileDir } 页面的入口文件模板地址,默认:public/index.html * <br/> * {@link pageMainFileName }页面目录下的入口文件名,默认:index.js * <br/> * {@link pageConfigHtmlNamePrefix }页面生成html文件时文件命名携带的前缀 * <br/> * {@link pageConfigFileName } 页面目录下的配置文件名,默认:config.json * <br/> * {@link autoCreatePageConfigFile } 是否在每个页面目录下自动创建config.json文件 * <br/> * {@link autoCreateProjectIndexPage } 是否自动创建项目的index页面 * <br/> * {@link nodeModulesDir } 第三方插件存放目录文件夹,默认:node_modules * <br/> * {@link globalConfig } 系统的全局配置 * <br/> * {@link finalParams } FastServer请求接口全局请求参数,web项目的全局参数优先级大于原生APP的全局参数 * <br/> * {@link injectJsFiles } 所有页面全局注入的js文件 * <br/> * {@link injectJsFilter } 所有页面全局注入js文件过滤器 * <br/> * {@link injectVariable } 所有页面全局注入js变量 * <br/> * {@link cacheVueLoader } 是否使用vue默认的cache-loader,默认使用 * <br/> * {@link vConsole } 开启vConsole插件的方式,默认:auto。可选值:auto(自动根据编辑的类型追加,server模式或debug模式开启),true(强制开启),false(不开启) * <br/> * {@link splitChunks } 将公共js代码,进行分割,默认:true * <br/> * {@link nativeMobileApp} 项目是否应用于创息公司的手机app,默认:true * <br/> * {@link buildLevel} 项目编译级别,与 标签 build-level 对应 * <br/> * {@link buildLevelTagName} 项目编译级别标签名,默认: build-level * <br/> * {@link chainWebpack} 配置Webpack函数function (config){}; * <br/> * {@link configureWebpack} 配置Webpack函数function (config){}; */ export declare class BuildOption { /** * 合并options * @param options */ static merge(...options: BuildOption[]): BuildOption; /** * 项目名称 */ projectTitle: string; /** * 项目存储页面的目录地址,默认src/pages 或者数组:["默认src/pages","默认src/pages2"] */ projectPagesDir: any; /** * 项目编译输出地址,默认:dist */ projectOutDir: string; /** * 项目资源路径,默认:assets */ projectAssetsDir: string; /** * 页面的入口文件模板地址,默认:public/index.html */ pageTemplateFileDir: string; /** * 页面目录下的入口文件名,默认:index.js */ pageMainFileName: string; /** * 页面目录下的配置文件名,默认:config.json */ pageConfigFileName: string; /** * 页面目录下的渲染模板html,如果存在则以这个模板进行渲染,默认:index.html */ pageMainTemplateFileName: string; /** * 页面生成html文件时文件命名携带的前缀 */ pageConfigHtmlNamePrefix: string; /** * 是否在每个页面目录下自动创建config.json文件 */ autoCreatePageConfigFile: boolean; /** * 是否自动创建项目的index页面 */ autoCreateProjectIndexPage: boolean; /** * 第三方插件存放目录文件夹,默认:node_modules */ nodeModulesDir: string; /** * vue挂载的目标节点选择器 */ mountSelector: string; /** * 系统的全局配置, * @example * globalConfig:{ * mainUrl:"http://192.168.0.1:8080/test" * } * 可通过 :FastBaseApp.Config.getGlobalConfig("mainUrl") 在任意js中获取配置 */ globalConfig: object | undefined; /** * FastServer请求接口全局请求参数。Web项目的全局参数优先级大于原生APP的全局参数 * @example * finalParams:{ * userId:2, * userName:undefined //当配置undefined值时,将排除此参数属性名 * } */ finalParams: object | undefined; /** * 所有页面全局注入的js文件 * @example * injectJsFiles:["src/js/test.js","src/js/icon.js"] * 或 * injectJsFiles:{ * "src/js/test.js":{ * exclude:["user","set"] //排除注入页面的名称,例如:user.html,set.html * }, * "src/js/icon.js":{ * include:["user","set"] //指定注入页面的名称,例如:user.html,set.html * } * } * 或 * injectJsFiles:[ * "src/js/test.js", * { * "src/js/icon.js":{ * exclude:["user","set"] //排除注入页面的名称,例如:user.html,set.html * } * } * ] */ injectJsFiles: string[] | object | undefined; /** * 所有页面全局注入js文件过滤器,当 {@link injectJsFiles} 为数组时生效! * @example * injectJsFilter:{ * include:["user","set"] //指定注入页面的名称,例如:user.html,set.html * } * 或 * injectJsFilter:{ * exclude:["user","set"] //排除注入页面的名称,例如:user.html,set.html * } */ injectJsFilter: { /** * 包含指定的页面,例如:user.html,set.html 则传入["user","set"] */ include?: string[]; /** * 排除指定页面,例如:user.html,set.html 则传入["user","set"] */ exclude?: string[]; } | undefined; /** * 所有页面全局js变量注入 * @example * injectVariable:{ * getUserId:function(){ * return 1; * }, * server:"……" * } */ injectVariable: any | undefined; /** * 是否使用vue默认的cache-loader缓存vue-loader,如果不使用,则在build版本前将删除缓存的目录.cache/vue-loader */ cacheVueLoader: boolean; /** * 开启vConsole插件的方式,默认:auto。可选值:auto(自动根据编辑的类型追加,server模式或debug模式开启),true(强制开启),false(不开启) */ vConsole: string; /** * 将公共js代码,进行分割,默认:true */ splitChunks: boolean; /** * 项目是否应用于创息公司的手机app,默认:true */ nativeMobileApp: boolean; /** * 项目编译级别,与 标签 build-level 对应 */ buildLevel: number; /** * 编译级别的标签名,默认 build-level */ buildLevelTagName: string; /** * 插入Webpack函数function (config){}; */ chainWebpack: ((config: any) => void); /** * 配置Webpack函数function (config){}; */ configureWebpack: ((config: any) => void); }