@plugin-light/project-config-uni-vue
Version:
开箱即用的项目配置,适用于 uni-app Vue2.x 项目
188 lines (187 loc) • 5.3 kB
TypeScript
import type { ICrossModuleStyleOptions } from '@plugin-light/webpack-loader-cross-module-style';
import type { IInsertGlobalCompOptions } from '@plugin-light/webpack-loader-insert-global-comp';
import type { ICopyDirOptions } from '@plugin-light/webpack-plugin-copy-dir';
import type { ICustomPreloadOptions } from '@plugin-light/webpack-plugin-custom-preload';
import type { IDispatchScriptOptions } from '@plugin-light/webpack-plugin-dispatch-script';
import type { IDispatchVueOptions } from '@plugin-light/webpack-plugin-dispatch-vue';
import type { IGenVersionOptions } from '@plugin-light/webpack-plugin-gen-version';
import type { IRemToRpxOptions } from '@plugin-light/webpack-plugin-rem-to-rpx';
import type { IReplaceUniH5PluginOption } from '@plugin-light/webpack-plugin-replace-uni-h5';
export type GetUniVueConfig = {
/**
* 是否使用转换动态引入的 loader
*/
useTransformDynamicCompLoader?: boolean;
/**
* 是否使用替换 vue key loader
*/
useReplaceVueKeyLoader?: boolean;
/**
* 是否使用处理 swipe 组件的 loader
*/
useSwipeComponentLoader?: boolean;
/**
* 是否使用自动插入全局组件 loader
*/
useInsertGlobalCompLoader?: boolean;
/**
* 自动插入全局组件选项
*/
insertGlobalCompLoaderOptions?: any;
/**
* 是否使用替换三方库 loader
*/
useReplaceLibraryLoader?: boolean;
/**
* 替换三方库选项
*/
replaceLibraryLoaderOptions?: any;
/**
* 是否使用替换模板标签
*/
useReplaceTemplateTagLoader?: boolean;
/**
* 替换模板标签选项
*/
replaceTemplateTagLoaderOptions?: any;
/**
* 是否使用 v-lazy loader
*/
useVLazyLoader?: boolean;
/**
* v-lazy loader 选项
*/
vLazyLoaderOptions?: any;
/**
* 是否使用插入 page-meta loader
*/
useInsertPageMetaLoader?: boolean;
/**
* 插入 page-meta loader 选项
*/
insertPageMetaLoaderOptions?: IInsertGlobalCompOptions;
/**
* cross-module-style loader 选项
*/
crossModuleStyleLoaderOptions?: ICrossModuleStyleOptions;
/**
* 是否使用 copy dir 插件
*/
useCopyDirPlugin?: boolean;
/**
* copy dir 插件选项
*/
copyDirPluginOptions?: ICopyDirOptions;
/**
* 是否使用脚本派发插件
*/
useDispatchScriptPlugin?: boolean;
/**
* 脚本派发插件选项
*/
dispatchScriptPluginOptions?: IDispatchScriptOptions;
/**
* 是否使用组件派发插件
*/
useDispatchVuePlugin?: boolean;
/**
* 组件派发插件选项
*/
dispatchVuePluginOptions?: IDispatchVueOptions;
/**
* 是否使用 xss 方法包裹 v-html 内容,需提前注册全局方法
*/
useXSS?: boolean;
/**
* 是否使用 add placeholder 插件,
* 为 true 时,也会使用 动态引入组件的替换插件
*/
useAddPlaceHolderPlugin?: boolean;
/**
* 小程序下, rem to rpx 插件选项
*/
remToRpxPluginMpOptions?: IRemToRpxOptions;
/**
* web 下,生成版本插件选项
*/
genVersionWebPluginOptions?: IGenVersionOptions;
/**
* 需移动的外层目录列表
*/
adapterDirs?: Array<string>;
/**
* 待转换的三方依赖
*/
transpileDependencies?: Array<string>;
/**
* 是否校验 eslint
*/
lintOnSave?: boolean;
/**
* 是否使用 H5 的 splitChunks 配置,
* 如果是对象类型,则直接传递给 config.optimization.splitChunks
*/
useH5SplitChunks?: boolean | Record<string, any>;
/**
* 是否使用 fix-mini-css-plugin
*/
useFixMiniCssPlugin?: boolean;
/**
* aegis-web-sdk 是否使用外链,
* 传入 string 会覆盖之前的链接
* @default true
*/
aegisWebSdkExternal?: boolean | string;
/**
* uni-simple-router 是否使用外链,
* 传入 string 会覆盖之前的链接
* @default false
*/
uniSimpleRouterExternal?: boolean | string;
/**
* axios 是否使用外链
* @default false
*/
axiosExternal?: boolean | string;
/**
* vue-lazy 是否使用外链
* @default false
*/
vueLazyloadExternal?: boolean | string;
/**
* 是否使用自定义预加载
* @default false
*/
customPreload?: boolean | ICustomPreloadOptions;
/**
* 是否需要 sourceMap,
* H5、生产环境、release 分支为 true,其他为 false
*/
needSourceMap?: boolean;
/**
* 是否使用 pmd-business 为 alias
* @default false
*/
usePMDBusinessAlias?: boolean;
/**
* 是否使用 work-box
*/
useWorkBoxPlugin?: Record<string, any>;
/**
* 是否保存 bundle-analyze 结果到 html 中
*/
saveBundleAnalyzeHtml?: boolean | Record<string, any>;
/**
* 是否使用 replaceUniH5Plugin
*/
useReplaceUniH5Plugin?: IReplaceUniH5PluginOption;
/**
* 是否使用 removeScoped loader
*/
useRemoveScopedLoader?: any;
/**
* 打包产物目录
* @default 'dist/${VUE_APP_DIR}/static'
*/
outputDirMode?: string;
};