Webpack:使用 googleapis 减少包大小

问题描述 投票:0回答:1

我正在用 Typescript 编写 NodeJS 代码,并将其与 Webpack 捆绑在一起。 我正在使用“googleapis”,这是一个巨大的 NPM 包,但我只需要 gmail 和 OAuth 部分:

import { google } from "googleapis";
const oAuth2Client = await new google.auth.OAuth2(client_id, client_secret, redirect_uri);
google.gmail({ version: "v1", auth: oAuth2Client });

webpack 块很大:

Bundling with Webpack...
Time: 23015ms
Asset        Size          
wait.js      10 MB         
wait.js.map  11.9 MB

现在如何缩小捆绑包的大小? 我尝试在 webpack.config 中使用外部:

externals: ["googleapis"]

但是当然这不包括整个 googleapis 包,因此该捆绑包将不再工作。

有什么想法吗?

node.js webpack google-api
1个回答
0
投票

只需导入所需的函数和类,而不是导入整个

googleapis

import { OAuth2Client } from 'google-auth-library';
import { gmail } from 'googleapis/build/src/apis/gmail';

const oAuth2Client = new OAuth2Client(client_id, client_secret, redirect_uri);
gmail({ version: 'v1', auth: oAuth2Client });

块大小如下。

.vite/build/main.js  1,295.55 kB │ gzip: 309.68 kB │ map: 2,535.85 kB
© www.soinside.com 2019 - 2024. All rights reserved.