Files
school2-taro/config/index.js
T
2026-07-13 14:44:13 +08:00

139 lines
3.6 KiB
JavaScript

/* eslint-disable import/no-commonjs */
/* eslint-disable @typescript-eslint/no-var-requires */
const npath = require("path");
const pkg = require("../package.json");
const miniChain = require("./webpack/miniChain");
const h5Chain = require("./webpack/h5Chain");
process.env.TARO_ENV = process.env.TARO_ENV ?? "weapp"
process.env.NODE_ENV = process.env.NODE_ENV ?? 'production'
process.env.API_ENV = process.env.API_ENV ?? 'real'
const config = {
projectName: pkg.name,
date: "2022-8-10",
designWidth: 750,
deviceRatio: {
640: 2.34 / 2,
750: 1,
828: 1.81 / 2,
},
sourceRoot: "src",
outputRoot: process.env.TARO_ENV === "h5" ? "build" : process.env.TARO_ENV,
alias: {
"@": npath.resolve(process.cwd(), "src"),
},
defineConstants: {},
copy: {
patterns: [],
options: {},
},
framework: "react",
compiler: "webpack5",
cache: {
enable: false, // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache
},
mini: {
webpackChain(chain) {
miniChain(chain);
},
lessLoaderOption: {
lessOptions: {
modifyVars: {
hack: `true; @import "${npath.join(
process.cwd(),
"src/styles/index.less"
)}";`,
},
},
// 适用于全局引入样式
// additionalData: "@import '~/src/styles/index.less';",
},
postcss: {
pxtransform: {
enable: true,
config: {},
},
url: {
enable: true,
config: {
limit: 1024, // 设定转换尺寸上限
},
},
cssModules: {
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
config: {
namingPattern: "module", // 转换模式,取值为 global/module
generateScopedName: "[name]__[local]___[hash:base64:5]",
},
},
},
miniCssExtractPluginOption: {
ignoreOrder: true,
},
},
h5: {
webpackChain(chain) {
h5Chain(chain);
if (process.env.NODE_ENV === "production") {
chain.performance.maxEntrypointSize(1000000).maxAssetSize(512000);
}
},
esnextModules: [/@antmjs[\\/]vantui/],
lessLoaderOption: {
lessOptions: {
modifyVars: {
// 或者可以通过 less 文件覆盖(文件路径为绝对路径)
hack: `true; @import "${npath.join(
process.cwd(),
"src/styles/index.less"
)}";`,
},
},
},
router: {
mode: "browser",
},
devServer: {
hot: false,
},
publicPath: "/",
staticDirectory: "static",
postcss: {
autoprefixer: {
enable: true,
config: {},
},
cssModules: {
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
config: {
namingPattern: "module", // 转换模式,取值为 global/module
generateScopedName: "[name]__[local]___[hash:base64:5]",
},
},
},
miniCssExtractPluginOption: {
ignoreOrder: true,
filename: "assets/css/[name].css",
chunkFilename: "assets/css/chunk/[name].css",
},
},
rn: {
appName: "taroDemo",
postcss: {
cssModules: {
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
},
},
},
plugins: [
["@tarojs/plugin-framework-react", { reactMode: "concurrent" }],
"@tarojs/plugin-platform-alipay-dd",
["@tarojs/plugin-platform-kwai"],
],
};
module.exports = function (merge) {
return merge({}, config, require(`./${process.env.NODE_ENV}`));
};