相关平台
微信小程序
复现仓库
https://github.com/moseszhou/taroImportError.git
小程序基础库: 2.4.0
使用框架: React
复现步骤
在src/store/index.js中,import { createLogger } from "redux-logger";
在打包的时候不管代码中是否用到createLogger,’redux-logger‘都会被打入包中
期望结果
- 未使用的import模块不会被打入包中
- 当出现 条件编译时,能够根据需要将’redux-logger‘打入包中
if (process.env.NODE_ENV !== "production") {
middlewares.push(createLogger());
}
- 也能支持preveal进行条件编译引入
preval`
module.exports = process.env.NODE_ENV === 'development' ? () => { middlewares.push(logger) } : () => {}
`();
实际结果
只要是import 引入的包都会被打入包中
环境信息
👽 Taro v3.5.12
Taro CLI 3.5.12 environment info:
System:
OS: macOS 13.2.1
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 14.19.3 - ~/.nvm/versions/node/v14.19.3/bin/node
Yarn: 1.22.17 - /usr/local/bin/yarn
npm: 6.14.17 - ~/.nvm/versions/node/v14.19.3/bin/npm
npmPackages:
@tarojs/cli: 3.5.12 => 3.5.12
@tarojs/components: 3.5.12 => 3.5.12
@tarojs/helper: 3.5.12 => 3.5.12
@tarojs/plugin-framework-react: 3.5.12 => 3.5.12
@tarojs/plugin-platform-alipay: 3.5.12 => 3.5.12
@tarojs/plugin-platform-jd: 3.5.12 => 3.5.12
@tarojs/plugin-platform-qq: 3.5.12 => 3.5.12
@tarojs/plugin-platform-swan: 3.5.12 => 3.5.12
@tarojs/plugin-platform-tt: 3.5.12 => 3.5.12
@tarojs/plugin-platform-weapp: 3.5.12 => 3.5.12
@tarojs/react: 3.5.12 => 3.5.12
@tarojs/rn-runner: 3.5.12 => 3.5.12
@tarojs/router: 3.5.12 => 3.5.12
@tarojs/runtime: 3.5.12 => 3.5.12
@tarojs/shared: 3.5.12 => 3.5.12
@tarojs/taro: 3.5.12 => 3.5.12
@tarojs/taro-h5: 3.5.12 => 3.5.12
@tarojs/taro-rn: 3.5.12 => 3.5.12
@tarojs/webpack5-runner: 3.5.12 => 3.5.12
babel-preset-taro: 3.5.12 => 3.5.12
eslint-config-taro: 3.5.12 => 3.5.12
expo: ~46.0.2 => 46.0.20
react: ^18.0.0 => 18.2.0
react-native: ^0.69.3 => 0.69.8
补充信息
taro2.x中 会打包时会自动移除未使用的模块,也能正确的根据条件是否打入包中
3条答案
按热度按时间2w2cym1i1#
taro2.x 的编译是
条件
方式一
源码
结果
方式二
源码:
结果:
2exbekwf2#
@Chen-jj 能找人看看这个问题么?
oo7oh9g93#
+1