Minimize shipped tsserver

This takes the shipped size from 9Mb to 2.9mb
This commit is contained in:
Matt Bierner 2020-07-22 14:44:13 -07:00
parent 6f685fdba5
commit 5b9fd525fa
4 changed files with 42 additions and 2 deletions

View file

@ -7,6 +7,8 @@
'use strict';
const CopyPlugin = require('copy-webpack-plugin');
const { lchmod } = require('graceful-fs');
const Terser = require('terser');
const withBrowserDefaults = require('../shared.webpack.config').browser;
@ -19,7 +21,22 @@ module.exports = withBrowserDefaults({
// @ts-ignore
new CopyPlugin({
patterns: [
{ from: 'node_modules/typescript-web-server', to: 'typescript-web' }
{
from: 'node_modules/typescript-web-server',
to: 'typescript-web',
transform: (content, absoluteFrom) => {
if (absoluteFrom.endsWith('tsserver.js')) {
return Terser.minify(content.toString()).code;
}
return content;
},
transformPath: (targetPath) => {
if (targetPath.endsWith('tsserver.js')) {
return targetPath.replace('tsserver.js', 'tsserver.web.js');
}
return targetPath;
}
}
],
}),
],

View file

@ -28,6 +28,7 @@
"@types/rimraf": "2.0.2",
"@types/semver": "^5.5.0",
"copy-webpack-plugin": "^6.0.3",
"terser": "^4.8.0",
"typescript-web-server": "git://github.com/mjbvz/ts-server-web-build",
"vscode": "^1.1.36"
},

View file

@ -52,7 +52,7 @@ export function activate(
const versionProvider = new StaticVersionProvider(
new TypeScriptVersion(
TypeScriptVersionSource.Bundled,
'/builtin-extension/typescript-language-features/dist/browser/typescript-web/tsserver.js',
'/builtin-extension/typescript-language-features/dist/browser/typescript-web/tsserver.web.js',
API.v400));
const lazyClientHost = createLazyClientHost(context, false, {

View file

@ -250,6 +250,11 @@ commander@2.15.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@ -1051,6 +1056,14 @@ source-map-support@^0.5.0:
buffer-from "^1.0.0"
source-map "^0.6.0"
source-map-support@~0.5.12:
version "0.5.19"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
source-map@^0.6.0, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
@ -1097,6 +1110,15 @@ tar@^6.0.2:
mkdirp "^1.0.3"
yallist "^4.0.0"
terser@^4.8.0:
version "4.8.0"
resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
dependencies:
commander "^2.20.0"
source-map "~0.6.1"
source-map-support "~0.5.12"
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"