Skip to content

Commit 5b9fd52

Browse files
committed
Minimize shipped tsserver
This takes the shipped size from 9Mb to 2.9mb
1 parent 6f685fd commit 5b9fd52

4 files changed

Lines changed: 42 additions & 2 deletions

File tree

extensions/typescript-language-features/extension-browser.webpack.config.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
'use strict';
99
const CopyPlugin = require('copy-webpack-plugin');
10+
const { lchmod } = require('graceful-fs');
11+
const Terser = require('terser');
1012

1113
const withBrowserDefaults = require('../shared.webpack.config').browser;
1214

@@ -19,7 +21,22 @@ module.exports = withBrowserDefaults({
1921
// @ts-ignore
2022
new CopyPlugin({
2123
patterns: [
22-
{ from: 'node_modules/typescript-web-server', to: 'typescript-web' }
24+
{
25+
from: 'node_modules/typescript-web-server',
26+
to: 'typescript-web',
27+
transform: (content, absoluteFrom) => {
28+
if (absoluteFrom.endsWith('tsserver.js')) {
29+
return Terser.minify(content.toString()).code;
30+
}
31+
return content;
32+
},
33+
transformPath: (targetPath) => {
34+
if (targetPath.endsWith('tsserver.js')) {
35+
return targetPath.replace('tsserver.js', 'tsserver.web.js');
36+
}
37+
return targetPath;
38+
}
39+
}
2340
],
2441
}),
2542
],

extensions/typescript-language-features/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"@types/rimraf": "2.0.2",
2929
"@types/semver": "^5.5.0",
3030
"copy-webpack-plugin": "^6.0.3",
31+
"terser": "^4.8.0",
3132
"typescript-web-server": "git://github.com/mjbvz/ts-server-web-build",
3233
"vscode": "^1.1.36"
3334
},

extensions/typescript-language-features/src/extension.browser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export function activate(
5252
const versionProvider = new StaticVersionProvider(
5353
new TypeScriptVersion(
5454
TypeScriptVersionSource.Bundled,
55-
'/builtin-extension/typescript-language-features/dist/browser/typescript-web/tsserver.js',
55+
'/builtin-extension/typescript-language-features/dist/browser/typescript-web/tsserver.web.js',
5656
API.v400));
5757

5858
const lazyClientHost = createLazyClientHost(context, false, {

extensions/typescript-language-features/yarn.lock

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,11 @@ commander@2.15.1:
250250
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
251251
integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
252252

253+
commander@^2.20.0:
254+
version "2.20.3"
255+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
256+
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
257+
253258
commondir@^1.0.1:
254259
version "1.0.1"
255260
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -1051,6 +1056,14 @@ source-map-support@^0.5.0:
10511056
buffer-from "^1.0.0"
10521057
source-map "^0.6.0"
10531058

1059+
source-map-support@~0.5.12:
1060+
version "0.5.19"
1061+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
1062+
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
1063+
dependencies:
1064+
buffer-from "^1.0.0"
1065+
source-map "^0.6.0"
1066+
10541067
source-map@^0.6.0, source-map@~0.6.1:
10551068
version "0.6.1"
10561069
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
@@ -1097,6 +1110,15 @@ tar@^6.0.2:
10971110
mkdirp "^1.0.3"
10981111
yallist "^4.0.0"
10991112

1113+
terser@^4.8.0:
1114+
version "4.8.0"
1115+
resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
1116+
integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
1117+
dependencies:
1118+
commander "^2.20.0"
1119+
source-map "~0.6.1"
1120+
source-map-support "~0.5.12"
1121+
11001122
to-regex-range@^5.0.1:
11011123
version "5.0.1"
11021124
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"

0 commit comments

Comments
 (0)