Skip to content

Commit e54330e

Browse files
author
Burhanuddin Udaipurwala
committed
feat: add swc env minimize benchmark
1 parent 35e8fba commit e54330e

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

addons/swc-env-minimize.js

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import { writeFile, unlink } from "fs/promises";
2+
3+
export const packageJson = (json) => {
4+
json.browserslist = "> 0.25%, not dead";
5+
Object.assign(json.devDependencies, {
6+
"@swc/core": "*",
7+
browserslist: "*",
8+
"swc-loader": "*",
9+
"regenerator-runtime": "*",
10+
"terser-webpack-plugin": "*",
11+
});
12+
return json;
13+
};
14+
15+
export const setup = async () => {
16+
await writeFile(
17+
".swcrc",
18+
JSON.stringify(
19+
{
20+
jsc: {
21+
parser: {
22+
syntax: "ecmascript",
23+
dynamicImport: true,
24+
},
25+
},
26+
env: {},
27+
},
28+
null,
29+
2
30+
)
31+
);
32+
};
33+
34+
export const teardown = async () => {
35+
try {
36+
await unlink(".swcrc");
37+
} catch (e) {}
38+
};
39+
40+
export const config = (content) => `${content}
41+
42+
var TerserPlugin = require("terser-webpack-plugin");
43+
44+
module.exports.module = module.exports.module || {};
45+
module.exports.module.rules = module.exports.module.rules || [];
46+
module.exports.module.rules.unshift({
47+
test: /\.(js|tsx?)$/,
48+
use: [
49+
{
50+
loader: "swc-loader"
51+
}
52+
]
53+
});
54+
55+
module.exports.optimization = {
56+
minimizer: [new TerserPlugin({
57+
minify: TerserPlugin.swcMinify,
58+
})],
59+
};
60+
`;

0 commit comments

Comments
 (0)