react中的tree-shaking的一些疑问

发布于 2022-09-12 23:23:04 字数 748 浏览 20 评论 0

目的:首先直接抛出问题在ts头部中我引入了一段代码再根据环境变量去决定是否去执行改代码
预期:打包出来的文件并没有因为是生产环境而减少改文件的大小
代码如下:

//httpLogin.ts
import mockAdapterFunc from "mock";
const { PUBLIC_URL: basename, REACT_APP_NEED_MOCK: needMock } = process.env;
needMock && mockAdapterFunc(http);

//mock.js
import { AxiosInstance } from "axios";
var MockAdapter = require("axios-mock-adapter");

export default function mockAdapterFunc (http: AxiosInstance) {
  var mock = new MockAdapter(http, { onNoMatch: "passthrough" });
  mock.onPost("/sso/logxxxin").reply(200, {
    user: "whidy",
  });
}

需要说明的是npm run build中needMock是为false 不执行后面的方法
打包出的代码分析图如下
image.png
如果手动删除axios-mock-adapter是不存在的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

知你几分 2022-09-19 23:23:04

tree-shaking是在构建模块代码时根据代码顶部import语句生成dependicens graph是进行的,属于静态编译阶段进行的,如果你要在这种运行阶段才决定是否引入一个模块,你可以了解一下webpack的异步模块

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文