135 lines
3.7 KiB
JavaScript
135 lines
3.7 KiB
JavaScript
import { defineConfig } from "@tarojs/cli";
|
||
import { UnifiedWebpackPluginV5 } from "weapp-tailwindcss/webpack";
|
||
import ComponentsPlugin from "unplugin-vue-components/webpack";
|
||
import NutUIResolver from "@nutui/auto-import-resolver";
|
||
|
||
import devConfig from "./dev";
|
||
import prodConfig from "./prod";
|
||
|
||
// https://taro-docs.jd.com/docs/next/config#defineconfig-辅助函数
|
||
export default defineConfig(async (merge, { command, mode }) => {
|
||
const baseConfig = {
|
||
projectName: "swayBall",
|
||
date: "2024-7-4",
|
||
designWidth(input) {
|
||
// 配置 NutUI 375 尺寸
|
||
// if (input?.file?.replace(/\\+/g, "/").indexOf("@nutui") > -1) {
|
||
// return 375;
|
||
// }
|
||
// 全局使用 Taro 默认的 750 尺寸
|
||
return 750;
|
||
},
|
||
deviceRatio: {
|
||
640: 2.34 / 2,
|
||
750: 1,
|
||
375: 2,
|
||
828: 1.81 / 2,
|
||
},
|
||
sourceRoot: "src",
|
||
outputRoot: "dist",
|
||
plugins: ["@tarojs/plugin-html"],
|
||
defineConstants: {},
|
||
copy: {
|
||
patterns: [],
|
||
options: {},
|
||
},
|
||
framework: "vue3",
|
||
compiler: {
|
||
type: "webpack5",
|
||
prebundle: { enable: false },
|
||
},
|
||
cache: {
|
||
enable: true, // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache
|
||
},
|
||
mini: {
|
||
postcss: {
|
||
pxtransform: {
|
||
enable: true,
|
||
config: {
|
||
removeCursorStyle: false,
|
||
},
|
||
},
|
||
url: {
|
||
enable: true,
|
||
config: {
|
||
limit: 1024, // 设定转换尺寸上限
|
||
},
|
||
},
|
||
cssModules: {
|
||
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
|
||
config: {
|
||
namingPattern: "module", // 转换模式,取值为 global/module
|
||
generateScopedName: "[name]__[local]___[hash:base64:5]",
|
||
},
|
||
},
|
||
},
|
||
webpackChain(chain, webpack) {
|
||
chain.merge({
|
||
plugin: {
|
||
install: {
|
||
plugin: UnifiedWebpackPluginV5,
|
||
args: [
|
||
{
|
||
appType: "taro",
|
||
},
|
||
],
|
||
},
|
||
},
|
||
});
|
||
},
|
||
},
|
||
h5: {
|
||
publicPath: "/",
|
||
staticDirectory: "static",
|
||
router: {
|
||
mode: "browser", // 或者是 'browser'
|
||
},
|
||
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: {
|
||
removeCursorStyle: false,
|
||
},
|
||
},
|
||
cssModules: {
|
||
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
|
||
config: {
|
||
namingPattern: "module", // 转换模式,取值为 global/module
|
||
generateScopedName: "[name]__[local]___[hash:base64:5]",
|
||
},
|
||
},
|
||
},
|
||
webpackChain(chain) {
|
||
chain.plugin("unplugin-vue-components").use(
|
||
ComponentsPlugin({
|
||
resolvers: [NutUIResolver({ taro: true })],
|
||
})
|
||
);
|
||
},
|
||
},
|
||
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);
|
||
});
|