2024-12-19 09:00:30 +08:00
|
|
|
|
import {UnifiedWebpackPluginV5} from 'weapp-tailwindcss/webpack'
|
2024-12-18 17:49:02 +08:00
|
|
|
|
import {defineConfig} from '@tarojs/cli'
|
2024-12-18 16:05:16 +08:00
|
|
|
|
|
|
|
|
|
|
import devConfig from './dev'
|
|
|
|
|
|
import prodConfig from './prod'
|
|
|
|
|
|
|
|
|
|
|
|
// https://taro-docs.jd.com/docs/next/config#defineconfig-辅助函数
|
2024-12-18 17:49:02 +08:00
|
|
|
|
export default defineConfig(async (merge, {command, mode}) => {
|
2024-12-18 16:05:16 +08:00
|
|
|
|
const baseConfig = {
|
|
|
|
|
|
projectName: 'taro-template',
|
|
|
|
|
|
date: '2024-12-18',
|
2024-12-19 09:00:30 +08:00
|
|
|
|
designWidth(input) {
|
|
|
|
|
|
// 配置 NutUI 375 尺寸
|
|
|
|
|
|
if (input?.file?.replace(/\\+/g, '/').indexOf('@nutui') > -1) {
|
|
|
|
|
|
return 375
|
|
|
|
|
|
}
|
|
|
|
|
|
// 全局使用 Taro 默认的 750 尺寸
|
|
|
|
|
|
return 750
|
|
|
|
|
|
},
|
2024-12-18 16:05:16 +08:00
|
|
|
|
deviceRatio: {
|
|
|
|
|
|
640: 2.34 / 2,
|
|
|
|
|
|
750: 1,
|
2024-12-19 09:00:30 +08:00
|
|
|
|
828: 1.81 / 2,
|
|
|
|
|
|
375: 2 / 1
|
2024-12-18 16:05:16 +08:00
|
|
|
|
},
|
|
|
|
|
|
sourceRoot: 'src',
|
|
|
|
|
|
outputRoot: 'dist',
|
2024-12-19 09:00:30 +08:00
|
|
|
|
plugins: ['@tarojs/plugin-html'],
|
2024-12-18 17:49:02 +08:00
|
|
|
|
defineConstants: {},
|
2024-12-18 16:05:16 +08:00
|
|
|
|
copy: {
|
2024-12-18 17:49:02 +08:00
|
|
|
|
patterns: [],
|
|
|
|
|
|
options: {}
|
2024-12-18 16:05:16 +08:00
|
|
|
|
},
|
|
|
|
|
|
framework: 'react',
|
2024-12-19 09:00:30 +08:00
|
|
|
|
compiler: {
|
|
|
|
|
|
type: 'webpack5',
|
|
|
|
|
|
prebundle: {
|
|
|
|
|
|
exclude: ['@nutui/nutui-react-taro', '@nutui/icons-react-taro']
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-12-18 16:05:16 +08:00
|
|
|
|
cache: {
|
2024-12-20 10:35:40 +08:00
|
|
|
|
enable: false // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache
|
2024-12-18 16:05:16 +08:00
|
|
|
|
},
|
|
|
|
|
|
mini: {
|
|
|
|
|
|
postcss: {
|
|
|
|
|
|
pxtransform: {
|
|
|
|
|
|
enable: true,
|
2024-12-18 17:49:02 +08:00
|
|
|
|
config: {}
|
2024-12-18 16:05:16 +08:00
|
|
|
|
},
|
|
|
|
|
|
cssModules: {
|
|
|
|
|
|
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
|
|
|
|
|
|
config: {
|
|
|
|
|
|
namingPattern: 'module', // 转换模式,取值为 global/module
|
|
|
|
|
|
generateScopedName: '[name]__[local]___[hash:base64:5]'
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-12-18 17:49:02 +08:00
|
|
|
|
},
|
|
|
|
|
|
webpackChain(chain, webpack) {
|
|
|
|
|
|
chain.merge({
|
|
|
|
|
|
plugin: {
|
|
|
|
|
|
install: {
|
|
|
|
|
|
plugin: UnifiedWebpackPluginV5,
|
|
|
|
|
|
args: [{
|
|
|
|
|
|
appType: 'taro',
|
|
|
|
|
|
// 下面个配置,会开启 rem -> rpx 的转化
|
|
|
|
|
|
rem2rpx: true
|
|
|
|
|
|
}]
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
2024-12-18 16:05:16 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
h5: {
|
|
|
|
|
|
publicPath: '/',
|
|
|
|
|
|
staticDirectory: 'static',
|
|
|
|
|
|
output: {
|
|
|
|
|
|
filename: 'js/[name].[hash:8].js',
|
|
|
|
|
|
chunkFilename: 'js/[name].[chunkhash:8].js'
|
|
|
|
|
|
},
|
|
|
|
|
|
miniCssExtractPluginOption: {
|
|
|
|
|
|
ignoreOrder: true,
|
|
|
|
|
|
filename: 'css/[name].[hash].css',
|
|
|
|
|
|
chunkFilename: 'css/[name].[chunkhash].css'
|
|
|
|
|
|
},
|
|
|
|
|
|
postcss: {
|
|
|
|
|
|
autoprefixer: {
|
|
|
|
|
|
enable: true,
|
|
|
|
|
|
config: {}
|
|
|
|
|
|
},
|
|
|
|
|
|
cssModules: {
|
|
|
|
|
|
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
|
|
|
|
|
|
config: {
|
|
|
|
|
|
namingPattern: 'module', // 转换模式,取值为 global/module
|
|
|
|
|
|
generateScopedName: '[name]__[local]___[hash:base64:5]'
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
rn: {
|
|
|
|
|
|
appName: 'taroDemo',
|
|
|
|
|
|
postcss: {
|
|
|
|
|
|
cssModules: {
|
|
|
|
|
|
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (process.env.NODE_ENV === 'development') {
|
|
|
|
|
|
// 本地开发构建配置(不混淆压缩)
|
|
|
|
|
|
return merge({}, baseConfig, devConfig)
|
|
|
|
|
|
}
|
|
|
|
|
|
// 生产构建配置(默认开启压缩混淆等)
|
|
|
|
|
|
return merge({}, baseConfig, prodConfig)
|
|
|
|
|
|
})
|