@tarojs/taro
Version:
Taro framework
86 lines (70 loc) • 2.85 kB
TypeScript
import type Webpack from 'webpack'
import type Chain from 'webpack-chain'
import type webpackDevServer from 'webpack-dev-server'
import type HtmlWebpackPlugin from 'html-webpack-plugin'
import type { RollupOptions } from 'rollup'
import type { IOption, IPostcssOption } from './util'
export interface IRNConfig {
/** 设置 RN bundle 中注册应用的名称 */
appName?: string
/** entry 利用模块查找规则{name}.{platform}.{ext}自动区分平台 */
entry?: string
/** 设置 Metro 打包生成 bundle 的输出路径,默认 dist 目录下 */
output?: any
/** [sass](https://github.com/sass/node-sass#options) 相关配置 */
sass?: IOption
/** [less](https://lesscss.org/usage/#less-options) 相关配置 */
less?: IOption
/** [stylus](https://github.com/NervJS/taro/blob/main/packages/taro-rn-style-transformer/README.md#rnstylus) 相关配置 */
stylus?: IOption
/** 配置 postcss 相关插件 */
postcss?: {
/** postcss 配置,参考 https://github.com/postcss/postcss#options */
options?: any
/** 默认true,控制是否对 css value 进行 scalePx2dp 转换,pxtransform配置 enable 才生效 */
scalable?: boolean
pxtransform?: {
enable?: boolean
/** 插件 pxtransform 配置项 */
config?: {
additionalProperties?: boolean
[key: string]: any
}
},
cssModules?: {
enable: boolean
},
[key: string]: any
}
resolve?: any
/** 支持多 className 转换,以 classname 或 style 结尾的, 提取前缀, 然后根据前缀,再生成对应的 xxxStyle。如:barClassName -> barStyle。默认值 false,不开启 */
enableMultipleClassName?: boolean
/** 当标签 style 属性值是数组时转换成对象。默认值 false,不开启 */
enableMergeStyle?: boolean
/** 将 svg 文件转换为组件引入。默认值 false,不开启 */
enableSvgTransform?: boolean
alias?: IOption
/** 设计稿尺寸 */
designWidth?: number | ((size?: string | number | Input) => number)
/** 设计稿尺寸换算规则 */
deviceRatio?: TaroGeneral.TDeviceRatio
/** 原生组件编译配置 */
nativeComponents?: {
/**
* 外部依赖
*/
external?: Array<string | RegExp> | ((arr: Array<string | RegExp>) => Array<string | RegExp>)
/**
* 设置外部依赖,如果返回 string, 则将该值作为 external, 我们默认将 node_modules 路径下的文件设置为外部依赖
*/
exteranlResolve?: (importee: string, importer: string) => string
/**
* 组件输出路径,默认值为 'dist'
*/
output?: string
/**
* 修改 Rollup 打包配置
*/
modifyRollupConfig?: (config: RollupOptions, innerPlugins: { taroResolver: typeof taroResolver, styleTransformer: typeof styleTransformer }) => RollupOptions
}
}