我正在用 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 包,因此该捆绑包将不再工作。
有什么想法吗?
只需导入所需的函数和类,而不是导入整个
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