Minimize shipped tsserver
This takes the shipped size from 9Mb to 2.9mb
This commit is contained in:
parent
6f685fdba5
commit
5b9fd525fa
|
@ -7,6 +7,8 @@
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
const CopyPlugin = require('copy-webpack-plugin');
|
const CopyPlugin = require('copy-webpack-plugin');
|
||||||
|
const { lchmod } = require('graceful-fs');
|
||||||
|
const Terser = require('terser');
|
||||||
|
|
||||||
const withBrowserDefaults = require('../shared.webpack.config').browser;
|
const withBrowserDefaults = require('../shared.webpack.config').browser;
|
||||||
|
|
||||||
|
@ -19,7 +21,22 @@ module.exports = withBrowserDefaults({
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
new CopyPlugin({
|
new CopyPlugin({
|
||||||
patterns: [
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
"@types/rimraf": "2.0.2",
|
"@types/rimraf": "2.0.2",
|
||||||
"@types/semver": "^5.5.0",
|
"@types/semver": "^5.5.0",
|
||||||
"copy-webpack-plugin": "^6.0.3",
|
"copy-webpack-plugin": "^6.0.3",
|
||||||
|
"terser": "^4.8.0",
|
||||||
"typescript-web-server": "git://github.com/mjbvz/ts-server-web-build",
|
"typescript-web-server": "git://github.com/mjbvz/ts-server-web-build",
|
||||||
"vscode": "^1.1.36"
|
"vscode": "^1.1.36"
|
||||||
},
|
},
|
||||||
|
|
|
@ -52,7 +52,7 @@ export function activate(
|
||||||
const versionProvider = new StaticVersionProvider(
|
const versionProvider = new StaticVersionProvider(
|
||||||
new TypeScriptVersion(
|
new TypeScriptVersion(
|
||||||
TypeScriptVersionSource.Bundled,
|
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));
|
API.v400));
|
||||||
|
|
||||||
const lazyClientHost = createLazyClientHost(context, false, {
|
const lazyClientHost = createLazyClientHost(context, false, {
|
||||||
|
|
|
@ -250,6 +250,11 @@ commander@2.15.1:
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
|
||||||
integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
|
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:
|
commondir@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
|
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"
|
buffer-from "^1.0.0"
|
||||||
source-map "^0.6.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:
|
source-map@^0.6.0, source-map@~0.6.1:
|
||||||
version "0.6.1"
|
version "0.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
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"
|
mkdirp "^1.0.3"
|
||||||
yallist "^4.0.0"
|
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:
|
to-regex-range@^5.0.1:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||||
|
|
Loading…
Reference in a new issue