Minimize TypeScript build

This commit is contained in:
Aleksey Kladov 2019-12-30 02:22:52 +01:00
parent 7192ee842d
commit 5846221a39
11 changed files with 42 additions and 1864 deletions

26
.vscode/launch.json vendored
View file

@ -10,18 +10,28 @@
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--disable-extensions",
"--user-data-dir",
"${workspaceFolder}/target/vscode",
"--extensionDevelopmentPath=${workspaceFolder}/editors/code"
],
"outFiles": [
"${workspaceFolder}/editors/code/out/**/*.js"
],
"preLaunchTask": "Build Extension"
},
{
"name": "Run Extension (Dev Server)",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}/editors/code"
],
"outFiles": [
"${workspaceFolder}/editors/code/out/**/*.js"
],
"preLaunchTask": "Build Extension",
"env": {
"__RA_LSP_SERVER_DEBUG": "${workspaceFolder}/target/debug/ra_lsp_server"
},
"outFiles": [
"${workspaceFolder}/editors/code/bundle/**/*.js"
],
"preLaunchTask": "Build All"
}
},
{
"name": "Debug Lsp Server",

27
.vscode/tasks.json vendored
View file

@ -5,32 +5,25 @@
"tasks": [
{
"label": "Build Extension",
"group": "build",
"type": "npm",
"script": "compile",
"script": "watch",
"path": "editors/code/",
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"fileLocation": [
"relative",
"${workspaceRoot}/editors/code"
]
"base": "$tsc-watch",
"fileLocation": ["relative", "${workspaceFolder}/editors/code/"]
},
"isBackground": true,
"presentation": {
"reveal": "never"
},
"path": "editors/code/"
},
{
"label": "Build Server",
"group": "build",
"type": "shell",
"command": "cargo build --package ra_lsp_server",
"problemMatcher": "$rustc"
},
{
"label": "Build All",
"group": "build",
"dependsOn": [
"Build Extension",
"Build Server"
],
"problemMatcher": []
},
]
}

View file

@ -1,2 +0,0 @@
node_modules/
.vscode-test/

View file

@ -1,9 +0,0 @@
.vscode/**
.vscode-test/**
out/**
src/**
.gitignore
tsconfig.json
vsc-extension-quickstart.md
tslint.json
node_modules/**

File diff suppressed because it is too large Load diff

View file

@ -17,47 +17,20 @@
},
"scripts": {
"vscode:prepublish": "npm run compile",
"package": "vsce package",
"compile": "rollup -c",
"watch": "tsc -watch -p ./",
"fix": "prettier **/*.{json,ts} --write && tslint --project . --fix",
"lint": "tslint --project .",
"prettier": "prettier **/*.{json,ts}",
"test": "tsc -p . && node ./out/test/runTest.js",
"travis": "npm run compile && npm run test && npm run lint && npm run prettier -- --write && git diff --exit-code"
},
"prettier": {
"singleQuote": true,
"tabWidth": 4,
"trailingComma": "all"
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./"
},
"dependencies": {
"lookpath": "^1.0.4",
"seedrandom": "^3.0.5",
"vscode-languageclient": "^6.0.0-next.9",
"jsonc-parser": "^2.1.0"
"jsonc-parser": "^2.1.0",
"lookpath": "^1.0.4",
"seedrandom": "^3.0.5"
},
"devDependencies": {
"@types/glob": "^7.1.1",
"@types/mocha": "^5.2.7",
"@types/node": "^12.12.21",
"@types/seedrandom": "^2.4.28",
"@types/vscode": "^1.41.0",
"glob": "^7.1.6",
"mocha": "^6.2.2",
"prettier": "^1.19.1",
"rollup": "^1.27.13",
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-node-resolve": "^5.2.0",
"rollup-plugin-sourcemaps": "^0.4.2",
"rollup-plugin-typescript": "^1.0.1",
"shx": "^0.3.1",
"tslint": "^5.20.1",
"tslint-config-prettier": "^1.18.0",
"tslint-plugin-prettier": "^2.0.1",
"typescript": "^3.7.3",
"vsce": "^1.71.0",
"vscode-test": "^1.3.0"
"@types/seedrandom": "^2.4.28",
"typescript": "^3.7.3"
},
"activationEvents": [
"onLanguage:rust",
@ -65,7 +38,7 @@
"onCommand:rust-analyzer.collectGarbage",
"workspaceContains:**/Cargo.toml"
],
"main": "./bundle/extension",
"main": "./out/extension",
"contributes": {
"taskDefinitions": [
{

View file

@ -1,30 +0,0 @@
import typescript from 'rollup-plugin-typescript';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import sourcemaps from 'rollup-plugin-sourcemaps'
import nodeBuiltins from 'builtin-modules';
export default {
input: './src/extension.ts',
plugins: [
typescript(),
sourcemaps(),
resolve(),
commonjs({
namedExports: {
// squelch missing import warnings
'vscode-languageclient': [ 'CreateFile', 'RenameFile' ]
}
}),
],
// keep these as require() calls, bundle the rest
external: [
...nodeBuiltins,
'vscode',
],
output: {
file: './bundle/extension.js',
sourcemap: true,
format: 'cjs',
}
};

View file

@ -1,22 +0,0 @@
import * as path from 'path';
import { runTests } from 'vscode-test';
async function main() {
try {
// The folder containing the Extension Manifest package.json
// Passed to `--extensionDevelopmentPath`
const extensionDevelopmentPath = path.resolve(__dirname, '../../');
// The path to the extension test runner script
// Passed to --extensionTestsPath
const extensionTestsPath = path.resolve(__dirname, './utils/index');
// Download VS Code, unzip it and run the integration test
await runTests({ extensionDevelopmentPath, extensionTestsPath });
} catch (err) {
process.exit(1);
}
}
main();

View file

@ -1,49 +0,0 @@
//
// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
//
// This file is providing the test runner to use when running extension tests.
// By default the test runner in use is Mocha based.
//
// You can provide your own test runner if you want to override it by exporting
// a function run(testRoot: string, clb: (error:Error) => void) that the extension
// host can call to run the tests. The test runner is expected to use console.log
// to report the results back to the caller. When the tests are finished, return
// a possible error to the callback or null if none.
import * as glob from 'glob';
import * as Mocha from 'mocha';
import * as path from 'path';
export function run(): Promise<void> {
// Create the mocha test
const mocha = new Mocha({
ui: 'bdd',
});
mocha.useColors(true);
const testsRoot = __dirname;
return new Promise((c, e) => {
glob('**/**.test.js', { cwd: testsRoot }, (err, files) => {
if (err) {
return e(err);
}
// Add files to the test suite
files.forEach(f => mocha.addFile(path.resolve(testsRoot, f)));
try {
// Run the mocha test
mocha.run(failures => {
if (failures > 0) {
e(new Error(`${failures} tests failed.`));
} else {
c();
}
});
} catch (err) {
e(err);
}
});
});
}

View file

@ -3,7 +3,9 @@
"module": "commonjs",
"target": "es2018",
"outDir": "out",
"lib": ["es2018"],
"lib": [
"es2018"
],
"sourceMap": true,
"rootDir": "src",
"strict": true,
@ -12,5 +14,7 @@
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true
},
"exclude": ["node_modules", ".vscode-test"]
"exclude": [
"node_modules"
]
}

View file

@ -1,15 +0,0 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended",
"tslint-config-prettier",
"tslint-plugin-prettier"
],
"rules": {
"interface-name": false,
"prettier": true,
"object-literal-sort-keys": false,
// Allow `_bar` to sort with tsc's `noUnusedParameters` option
"variable-name": [true, "allow-leading-underscore"]
}
}