Skip to content

Commit

Permalink
build: improve tree shaking (#3803)
Browse files Browse the repository at this point in the history
* build: improve tree shaking

* build: generate es2015 code

* build: use `defineConfig`

* chore: versions

* chore: revert potentially unsafe treeshake rules

* chore: update `@rollup/plugin-commonjs`
  • Loading branch information
merceyz authored Dec 2, 2021
1 parent 4bf39c9 commit dceb8fc
Show file tree
Hide file tree
Showing 15 changed files with 215 additions and 236 deletions.
222 changes: 66 additions & 156 deletions .pnp.cjs

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
36 changes: 36 additions & 0 deletions .yarn/versions/03670352.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
releases:
"@yarnpkg/cli": patch
"@yarnpkg/core": patch
"@yarnpkg/plugin-pnp": patch
"@yarnpkg/pnp": patch
vscode-zipfs: patch

declined:
- "@yarnpkg/esbuild-plugin-pnp"
- "@yarnpkg/plugin-compat"
- "@yarnpkg/plugin-constraints"
- "@yarnpkg/plugin-dlx"
- "@yarnpkg/plugin-essentials"
- "@yarnpkg/plugin-exec"
- "@yarnpkg/plugin-file"
- "@yarnpkg/plugin-git"
- "@yarnpkg/plugin-github"
- "@yarnpkg/plugin-http"
- "@yarnpkg/plugin-init"
- "@yarnpkg/plugin-interactive-tools"
- "@yarnpkg/plugin-link"
- "@yarnpkg/plugin-nm"
- "@yarnpkg/plugin-npm"
- "@yarnpkg/plugin-npm-cli"
- "@yarnpkg/plugin-pack"
- "@yarnpkg/plugin-patch"
- "@yarnpkg/plugin-pnpm"
- "@yarnpkg/plugin-stage"
- "@yarnpkg/plugin-typescript"
- "@yarnpkg/plugin-version"
- "@yarnpkg/plugin-workspace-tools"
- "@yarnpkg/builder"
- "@yarnpkg/doctor"
- "@yarnpkg/nm"
- "@yarnpkg/pnpify"
- "@yarnpkg/sdks"
4 changes: 2 additions & 2 deletions packages/vscode-zipfs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,13 @@
}
},
"devDependencies": {
"@rollup/plugin-commonjs": "^18.0.0",
"@rollup/plugin-commonjs": "^21.0.1",
"@rollup/plugin-node-resolve": "^11.0.1",
"@types/vscode": "^1.54.0",
"@yarnpkg/fslib": "workspace:^",
"@yarnpkg/libzip": "workspace:^",
"esbuild": "npm:esbuild-wasm@^0.11.20",
"rollup": "^2.43.0",
"rollup": "^2.59.0",
"rollup-plugin-esbuild": "^3.0.2",
"rollup-plugin-terser": "^7.0.2",
"vsce": "^1.85.1"
Expand Down
57 changes: 34 additions & 23 deletions packages/vscode-zipfs/rollup.config.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,38 @@
import cjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import path from 'path';
import esbuild from 'rollup-plugin-esbuild';
import cjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import path from 'path';
import esbuild from 'rollup-plugin-esbuild';
import {defineConfig} from 'rollup';

const mode = process.env.NODE_ENV || `production`;

// eslint-disable-next-line arca/no-default-export
export default async () => ({
input: `./sources/index.ts`,
output: {
file: `./build/index.js`,
format: `cjs`,
},
plugins: [
resolve({
extensions: [`.mjs`, `.js`, `.ts`, `.tsx`, `.json`],
rootDir: path.join(__dirname, `../../`),
jail: path.join(__dirname, `../../`),
preferBuiltins: true,
}),
esbuild({tsconfig: false, target: `node12`}),
cjs({transformMixedEsModules: true, extensions: [`.js`, `.ts`]}),
mode === `production` && (await import(`rollup-plugin-terser`)).terser({ecma: 2019}),
],
external: [`vscode`],
});
export default async () =>
defineConfig({
input: `./sources/index.ts`,
output: {
file: `./build/index.js`,
format: `cjs`,
generatedCode: `es2015`,
},
plugins: [
resolve({
extensions: [`.mjs`, `.js`, `.ts`, `.tsx`, `.json`],
rootDir: path.join(__dirname, `../../`),
jail: path.join(__dirname, `../../`),
preferBuiltins: true,
}),
esbuild({
tsconfig: false,
target: `node12`,
define: {
document: `undefined`,
XMLHttpRequest: `undefined`,
crypto: `undefined`,
},
}),
cjs({transformMixedEsModules: true, extensions: [`.js`, `.ts`]}),
mode === `production` && (await import(`rollup-plugin-terser`)).terser({ecma: 2019}),
],
external: [`vscode`],
});
4 changes: 2 additions & 2 deletions packages/yarnpkg-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"tunnel": "^0.0.6"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^18.0.0",
"@rollup/plugin-commonjs": "^21.0.1",
"@rollup/plugin-node-resolve": "^11.0.1",
"@types/cross-spawn": "6.0.0",
"@types/diff": "^4.0.2",
Expand All @@ -54,7 +54,7 @@
"@yarnpkg/plugin-npm": "workspace:^",
"@yarnpkg/plugin-pnp": "workspace:^",
"esbuild": "npm:esbuild-wasm@^0.11.20",
"rollup": "^2.43.0",
"rollup": "^2.59.0",
"rollup-plugin-esbuild": "^3.0.2",
"rollup-plugin-terser": "^7.0.2"
},
Expand Down
51 changes: 29 additions & 22 deletions packages/yarnpkg-core/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import resolve from '@rollup/plugin-node-resolve';
import path from 'path';
import esbuild from 'rollup-plugin-esbuild';
import {terser} from 'rollup-plugin-terser';
import {defineConfig} from 'rollup';
import {brotliCompressSync} from 'zlib';

function wrapOutput() {
Expand All @@ -23,26 +24,32 @@ function wrapOutput() {
}

// eslint-disable-next-line arca/no-default-export
export default [
{
input: `./sources/worker-zip/Worker.ts`,
output: {
file: `./sources/worker-zip/index.js`,
format: `cjs`,
strict: false,
preferConst: true,
},
plugins: [
resolve({
extensions: [`.mjs`, `.js`, `.ts`, `.tsx`, `.json`],
rootDir: path.join(__dirname, `../../`),
jail: path.join(__dirname, `../../`),
preferBuiltins: true,
}),
esbuild({tsconfig: false, target: `node12`}),
cjs({transformMixedEsModules: true, extensions: [`.js`, `.ts`]}),
terser({ecma: 2019}),
wrapOutput(),
],
export default defineConfig({
input: `./sources/worker-zip/Worker.ts`,
output: {
file: `./sources/worker-zip/index.js`,
format: `cjs`,
strict: false,
generatedCode: `es2015`,
},
];
plugins: [
resolve({
extensions: [`.mjs`, `.js`, `.ts`, `.tsx`, `.json`],
rootDir: path.join(__dirname, `../../`),
jail: path.join(__dirname, `../../`),
preferBuiltins: true,
}),
esbuild({
tsconfig: false,
target: `node12`,
define: {
document: `undefined`,
XMLHttpRequest: `undefined`,
crypto: `undefined`,
},
}),
cjs({transformMixedEsModules: true, extensions: [`.js`, `.ts`]}),
terser({ecma: 2019}),
wrapOutput(),
],
});
2 changes: 1 addition & 1 deletion packages/yarnpkg-core/sources/worker-zip/index.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions packages/yarnpkg-pnp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
"tslib": "^1.13.0"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^18.0.0",
"@rollup/plugin-commonjs": "^21.0.1",
"@rollup/plugin-node-resolve": "^11.0.1",
"@yarnpkg/builder": "workspace:^",
"@yarnpkg/libzip": "workspace:^",
"@yarnpkg/monorepo": "workspace:^",
"esbuild": "npm:esbuild-wasm@^0.11.20",
"rollup": "^2.43.0",
"rollup": "^2.59.0",
"rollup-plugin-esbuild": "^3.0.2",
"typescript": "^4.5.2",
"webpack": "^5.1.1",
Expand Down
33 changes: 24 additions & 9 deletions packages/yarnpkg-pnp/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import cjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import path from 'path';
import esbuild from 'rollup-plugin-esbuild';
import {defineConfig} from 'rollup';
import {brotliCompressSync} from 'zlib';

function wrapOutput() {
Expand All @@ -21,16 +22,16 @@ function wrapOutput() {
};
}

/** @type {Array<import('rollup').RollupOptions>} */
const options = [
// eslint-disable-next-line arca/no-default-export
export default defineConfig([
{
input: `./sources/loader/_entryPoint.ts`,
output: {
file: `./sources/hook.js`,
format: `cjs`,
exports: `default`,
strict: false,
preferConst: true,
generatedCode: `es2015`,
},
plugins: [
resolve({
Expand All @@ -39,7 +40,15 @@ const options = [
jail: path.join(__dirname, `../../`),
preferBuiltins: true,
}),
esbuild({tsconfig: false, target: `node12`}),
esbuild({
tsconfig: false,
target: `node12`,
define: {
document: `undefined`,
XMLHttpRequest: `undefined`,
crypto: `undefined`,
},
}),
cjs({transformMixedEsModules: true, extensions: [`.js`, `.ts`]}),
wrapOutput(),
],
Expand All @@ -49,6 +58,7 @@ const options = [
output: {
file: `./sources/esm-loader/built-loader.js`,
format: `esm`,
generatedCode: `es2015`,
},
plugins: [
resolve({
Expand All @@ -57,12 +67,17 @@ const options = [
jail: path.join(__dirname, `../../`),
preferBuiltins: true,
}),
esbuild({tsconfig: false, target: `node12`}),
esbuild({
tsconfig: false,
target: `node12`,
define: {
document: `undefined`,
XMLHttpRequest: `undefined`,
crypto: `undefined`,
},
}),
cjs({requireReturnsDefault: `preferred`}),
wrapOutput(),
],
},
];

// eslint-disable-next-line arca/no-default-export
export default options;
]);
2 changes: 1 addition & 1 deletion packages/yarnpkg-pnp/sources/hook.js

Large diffs are not rendered by default.

Loading

0 comments on commit dceb8fc

Please sign in to comment.