UNPKG

sdin

Version:

JavaScript package builder.

103 lines (102 loc) 4.38 kB
import { RuleSetCondition, RuleSetRule } from 'webpack'; import { OrNil } from "../utils/declaration"; import { SdinProject } from './project'; import { SdinAbstractModule, SdinAbstractModuleDatas, SdinAbstractModuleParams } from './abstract-module'; export type SdinIntegrationModuleType = 'integration'; export type SdinIntegrationModuleMode = 'cjs' | 'umd' | 'jsp' | 'glb'; export declare const GLOBAL_MODE_LIST: SdinIntegrationModuleMode[]; export interface SdinIntegrationModuleDatas extends SdinAbstractModuleDatas { } /** * Sdin 集成模块配置选项 */ export interface SdinIntegrationModuleParams extends SdinAbstractModuleParams<SdinIntegrationModuleType, SdinIntegrationModuleMode> { /** 模块构建模式(默认:umd) */ mode?: SdinIntegrationModuleMode; /** 模块源码目录(默认:src,相对项目根目录而言) */ src?: string; /** 模块目标目录(默认:tar/模块构建模式,相对项目根目录而言) */ tar?: string; /** 模块入口文件(默认:index.(ts|tsx|js|jsx),相对模块源码目录而言) */ index?: string; /** 模块捆绑包名(默认:index,用于指定生成的主文件名称) */ bundle?: string; /** 全局对象(指定要挂载的环境中的全局对象变量名) */ global?: string; /** 全局变量名(用于指定包的导出对象,在全局的名称,cjs、umd 模式有效) */ variable?: string; /** 压缩代码(默认:true) */ minify?: boolean; /** 丑化代码(默认:true) */ uglify?: boolean; /** 源代码映射(默认:压缩或丑化时启用) */ sourceMap?: boolean; /** 去除代码里使用到的外部模块 */ externals?: Record<string, string>; /** SASS 模块(默认:开启) */ sassModule?: boolean; /** 混淆 CSS 类名(默认:开启) */ mixinClass?: boolean; /** babel 编译包含项 */ babelIncludes?: OrNil<RuleSetCondition>[]; /** babel 编译排除项 */ babelExcludes?: OrNil<RuleSetCondition>[]; /** 修改文本打包规则(仅允许修改部分值)*/ rawRule?: Partial<RuleSetRule>; /** 修改字体打包规则(仅允许修改部分值)*/ fontRule?: Partial<RuleSetRule>; /** 修改图片打包规则(仅允许修改部分值)*/ imageRule?: Partial<RuleSetRule>; /** 修改音频打包规则(仅允许修改部分值)*/ audioRule?: Partial<RuleSetRule>; /** 修改视频打包规则(仅允许修改部分值)*/ videoRule?: Partial<RuleSetRule>; /** 添加打包规则(可以覆盖部分默认规则) */ rules?: OrNil<RuleSetRule>[]; } /** * Sdin 集成模块配置 */ export declare class SdinIntegrationModule extends SdinAbstractModule<SdinIntegrationModuleType, SdinIntegrationModuleMode, SdinIntegrationModuleParams, SdinIntegrationModuleDatas> { /** 模块入口文件 */ readonly index: string; /** 模块捆绑包名 */ readonly bundle: string; /** 全局对象 */ readonly global: string | null; /** 全局变量名 */ readonly variable: string; /** 压缩代码 */ readonly minify: boolean; /** 丑化代码 */ readonly uglify: boolean; /** 源代码映射 */ readonly sourceMap: boolean; /** 去除代码里使用到的外部模块 */ readonly externals: Record<string, string>; /** SASS 模块 */ readonly sassModule: boolean; /** 混淆 CSS 类名 */ readonly mixinClass: boolean; /** babel 编译包含项 */ readonly babelIncludes: RuleSetCondition[]; /** babel 编译排除项 */ readonly babelExcludes: RuleSetCondition[]; /** 修改文本打包规则 */ readonly rawRule: Partial<RuleSetRule>; /** 修改字体打包规则 */ readonly fontRule: Partial<RuleSetRule>; /** 修改图片打包规则 */ readonly imageRule: Partial<RuleSetRule>; /** 修改音频打包规则 */ readonly audioRule: Partial<RuleSetRule>; /** 修改视频打包规则 */ readonly videoRule: Partial<RuleSetRule>; /** 添加打包规则 */ readonly rules: RuleSetRule[]; /** 数据宏定义 */ readonly datas: SdinIntegrationModuleDatas; constructor(project: SdinProject, params: SdinIntegrationModuleParams); validate(): Promise<void>; getTarIndex(): string; }