Improvements to build system (#1751)
* Refactoring gulp * Pipeline changes
This commit is contained in:
Родитель
e4672b1ca1
Коммит
deb46a51ea
|
@ -1,14 +1,12 @@
|
|||
steps:
|
||||
- task: NodeTool@0
|
||||
displayName: 'Use Node 10.x'
|
||||
inputs:
|
||||
versionSpec: 10.x
|
||||
|
||||
- task: Npm@1
|
||||
displayName: 'npm install'
|
||||
|
||||
- task: Npm@1
|
||||
displayName: 'Build'
|
||||
displayName: 'Build and Test'
|
||||
inputs:
|
||||
command: custom
|
||||
customCommand: run build
|
||||
customCommand: run ci-build
|
||||
env:
|
||||
SERVICE_PRINCIPAL_CLIENT_ID: $(SERVICE_PRINCIPAL_CLIENT_ID)
|
||||
SERVICE_PRINCIPAL_SECRET: $(SERVICE_PRINCIPAL_SECRET)
|
||||
SERVICE_PRINCIPAL_DOMAIN: $(SERVICE_PRINCIPAL_DOMAIN)
|
||||
DISPLAY: :10 # Only necessary for linux tests
|
||||
DOCKER_UNAVAILABLE: ${{ parameters.dockerUnavailable }}
|
||||
|
|
|
@ -1,10 +1,4 @@
|
|||
steps:
|
||||
- task: Npm@1
|
||||
displayName: 'Lint'
|
||||
inputs:
|
||||
command: custom
|
||||
customCommand: run lint
|
||||
|
||||
- task: ComponentGovernanceComponentDetection@0
|
||||
displayName: 'Component Detection'
|
||||
condition: ne(variables['System.PullRequest.IsFork'], 'True')
|
|
@ -1,9 +1,15 @@
|
|||
steps:
|
||||
- task: Npm@1
|
||||
displayName: 'Package'
|
||||
displayName: 'Build, Test, and Package'
|
||||
inputs:
|
||||
command: custom
|
||||
customCommand: run package
|
||||
customCommand: run ci-package
|
||||
env:
|
||||
SERVICE_PRINCIPAL_CLIENT_ID: $(SERVICE_PRINCIPAL_CLIENT_ID)
|
||||
SERVICE_PRINCIPAL_SECRET: $(SERVICE_PRINCIPAL_SECRET)
|
||||
SERVICE_PRINCIPAL_DOMAIN: $(SERVICE_PRINCIPAL_DOMAIN)
|
||||
DISPLAY: :10 # Only necessary for linux tests
|
||||
DOCKER_UNAVAILABLE: ${{ parameters.dockerUnavailable }}
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy vsix to staging directory'
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
steps:
|
||||
- task: NodeTool@0
|
||||
displayName: 'Use Node 12.x'
|
||||
inputs:
|
||||
versionSpec: 12.x
|
||||
|
||||
- task: Npm@1
|
||||
displayName: 'Install Dependencies'
|
||||
|
||||
- script: |
|
||||
sudo cp .azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
||||
sudo chmod +x /etc/init.d/xvfb
|
||||
sudo update-rc.d xvfb defaults
|
||||
sudo service xvfb start
|
||||
displayName: 'Start X Virtual Frame Buffer'
|
||||
condition: eq(variables['Agent.OS'], 'Linux')
|
|
@ -1,27 +0,0 @@
|
|||
steps:
|
||||
- script: |
|
||||
sudo cp .azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
||||
sudo chmod +x /etc/init.d/xvfb
|
||||
sudo update-rc.d xvfb defaults
|
||||
sudo service xvfb start
|
||||
displayName: 'Start X Virtual Frame Buffer'
|
||||
condition: eq(variables['Agent.OS'], 'Linux')
|
||||
|
||||
- task: Npm@1
|
||||
displayName: 'Test'
|
||||
inputs:
|
||||
command: custom
|
||||
customCommand: test
|
||||
env:
|
||||
SERVICE_PRINCIPAL_CLIENT_ID: $(SERVICE_PRINCIPAL_CLIENT_ID)
|
||||
SERVICE_PRINCIPAL_SECRET: $(SERVICE_PRINCIPAL_SECRET)
|
||||
SERVICE_PRINCIPAL_DOMAIN: $(SERVICE_PRINCIPAL_DOMAIN)
|
||||
DISPLAY: :10 # Only necessary for linux tests
|
||||
DOCKER_UNAVAILABLE: ${{ parameters.dockerUnavailable }}
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: 'Publish Test Results'
|
||||
inputs:
|
||||
testResultsFiles: '*-results.xml'
|
||||
testRunTitle: '$(Agent.OS)'
|
||||
condition: succeededOrFailed()
|
|
@ -1,6 +0,0 @@
|
|||
steps:
|
||||
- task: Npm@1
|
||||
displayName: 'Webpack (production)'
|
||||
inputs:
|
||||
command: custom
|
||||
customCommand: run webpack-prod
|
|
@ -3,28 +3,24 @@ jobs:
|
|||
pool:
|
||||
vmImage: windows-latest
|
||||
steps:
|
||||
- template: common/setup.yml
|
||||
- template: common/governance.yml # Force governance before test to avoid false-positives.
|
||||
- template: common/build.yml
|
||||
- template: common/webpack-prod.yml
|
||||
- template: common/lint.yml
|
||||
- template: common/test.yml
|
||||
|
||||
- job: Linux
|
||||
pool:
|
||||
vmImage: ubuntu-latest
|
||||
steps:
|
||||
- template: common/build.yml
|
||||
- template: common/webpack-prod.yml # This will also run during vsce package, but vscep pack doesn't show STDOUT so we won't see full errors there
|
||||
- template: common/setup.yml
|
||||
- template: common/governance.yml # Force governance before test to avoid false-positives.
|
||||
- template: common/publish-vsix.yml # Only publish vsix from linux build since we use this to release and want to stay consistent
|
||||
- template: common/lint.yml
|
||||
- template: common/test.yml
|
||||
|
||||
- job: macOS
|
||||
pool:
|
||||
vmImage: macOS-latest
|
||||
steps:
|
||||
- template: common/setup.yml
|
||||
- template: common/governance.yml # Force governance before test to avoid false-positives.
|
||||
- template: common/build.yml
|
||||
- template: common/webpack-prod.yml
|
||||
- template: common/lint.yml
|
||||
- template: common/test.yml
|
||||
parameters:
|
||||
dockerUnavailable: 1 # Docker not available on MacOS agents (https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/docker)
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
test/
|
||||
gulpfile.ts
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
],
|
||||
"preLaunchTask": "npm: compile"
|
||||
"preLaunchTask": "${defaultBuildTask}"
|
||||
},
|
||||
{
|
||||
"name": "Launch Extension (webpack)",
|
||||
|
@ -37,7 +37,7 @@
|
|||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
],
|
||||
"preLaunchTask": "npm: pretest"
|
||||
"preLaunchTask": "npm: webpack"
|
||||
},
|
||||
{
|
||||
"name": "Launch Tests",
|
||||
|
@ -54,7 +54,7 @@
|
|||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
],
|
||||
"preLaunchTask": "npm: compile",
|
||||
"preLaunchTask": "${defaultBuildTask}",
|
||||
"env": {
|
||||
"AZCODE_DOCKER_IGNORE_BUNDLE": "1",
|
||||
"MOCHA_grep": "", // RegExp of tests to run (empty means all)
|
||||
|
@ -78,7 +78,7 @@
|
|||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
],
|
||||
"preLaunchTask": "npm: compile",
|
||||
"preLaunchTask": "${defaultBuildTask}",
|
||||
"env": {
|
||||
"AZCODE_DOCKER_IGNORE_BUNDLE": "1",
|
||||
"MOCHA_grep": "\\(unit\\)", // RegExp of tests to run (empty means all)
|
||||
|
@ -102,7 +102,7 @@
|
|||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
],
|
||||
"preLaunchTask": "npm: pretest",
|
||||
"preLaunchTask": "npm: webpack",
|
||||
"env": {
|
||||
"MOCHA_grep": "", // RegExp of tests to run (empty means all)
|
||||
"MOCHA_enableTimeouts": "0", // Disable time-outs
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"tasks": [
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "compile",
|
||||
"script": "watch",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
|
@ -13,11 +13,6 @@
|
|||
"reveal": "never"
|
||||
},
|
||||
"problemMatcher": "$tsc-watch"
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "lint",
|
||||
"problemMatcher": "$tslint5"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
99
gulpfile.ts
99
gulpfile.ts
|
@ -3,64 +3,83 @@
|
|||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
// tslint:disable:no-implicit-dependencies
|
||||
import * as cp from 'child_process';
|
||||
import * as fse from 'fs-extra';
|
||||
import * as gulp from 'gulp';
|
||||
import * as eslint from 'gulp-eslint';
|
||||
import * as sourcemaps from 'gulp-sourcemaps';
|
||||
import * as ts from 'gulp-typescript';
|
||||
import * as os from 'os';
|
||||
import * as path from 'path';
|
||||
import * as vsce from 'vsce';
|
||||
import { gulp_installAzureAccount, gulp_webpack } from 'vscode-azureextensiondev';
|
||||
|
||||
const env = process.env;
|
||||
const tsProject = ts.createProject('./tsconfig.json');
|
||||
|
||||
function test(mochaGrep: string = ''): cp.ChildProcess {
|
||||
function compileTask() {
|
||||
return tsProject.src()
|
||||
.pipe(sourcemaps.init())
|
||||
.pipe(tsProject()).js
|
||||
.pipe(sourcemaps.write('.', { includeContent: false, sourceRoot: './' }))
|
||||
.pipe(gulp.dest(tsProject.options.outDir));
|
||||
}
|
||||
|
||||
function lintTask() {
|
||||
return gulp.src(['src/**/*.ts'])
|
||||
.pipe(eslint())
|
||||
.pipe(eslint.format())
|
||||
.pipe(eslint.failAfterError())
|
||||
.pipe(eslint.results(
|
||||
results => {
|
||||
if (results.warningCount) {
|
||||
throw new Error('ESLint generated warnings.');
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
function testTaskFactory(unitTestsOnly: boolean) {
|
||||
if (os.platform() === 'win32') {
|
||||
// For some reason this is getting set to '--max-old-space-size=8192', which in turn for some reason causes the VSCode test process to instantly crash with error code 3 on Windows
|
||||
// Which makes no sense because the default is 512 MB max
|
||||
env.NODE_OPTIONS = '';
|
||||
}
|
||||
env.DEBUGTELEMETRY = '1';
|
||||
env.CODE_TESTS_WORKSPACE = path.join(__dirname, 'test/test.code-workspace');
|
||||
env.MOCHA_grep = mochaGrep;
|
||||
env.MOCHA_grep = unitTestsOnly ? '\\(unit\\)' : '';
|
||||
env.MOCHA_timeout = String(10 * 1000);
|
||||
env.CODE_TESTS_PATH = path.join(__dirname, 'dist/test');
|
||||
return spawn('node', ['./node_modules/vscode/bin/test'], { stdio: 'inherit', env });
|
||||
return cp.spawn('node', ['./node_modules/vscode/bin/test'], { stdio: 'inherit', env });
|
||||
}
|
||||
|
||||
function allTest(): cp.ChildProcess {
|
||||
return test();
|
||||
function allTestsTask() {
|
||||
return testTaskFactory(false);
|
||||
}
|
||||
|
||||
function unitTest(): cp.ChildProcess {
|
||||
return test('\\(unit\\)');
|
||||
function unitTestsTask() {
|
||||
return testTaskFactory(true);
|
||||
}
|
||||
|
||||
function spawn(command: string, args: string[], options: {}): cp.ChildProcess {
|
||||
if (process.platform === 'win32') {
|
||||
if (fse.pathExistsSync(command + '.exe')) {
|
||||
command = command + '.exe';
|
||||
} else if (fse.pathExistsSync(command + '.cmd')) {
|
||||
command = command + '.cmd';
|
||||
}
|
||||
}
|
||||
|
||||
return cp.spawn(command, args, options);
|
||||
function webpackDevTask() {
|
||||
return gulp_webpack('development');
|
||||
}
|
||||
|
||||
async function sortPackageJson(): Promise<void> {
|
||||
const fsPath = path.join(__dirname, 'package.json');
|
||||
console.log(fsPath);
|
||||
// tslint:disable: no-any no-unsafe-any
|
||||
const packageJson: any = await fse.readJSON(fsPath);
|
||||
packageJson.activationEvents.sort();
|
||||
packageJson.contributes.menus["view/item/context"].sort((a, b) => {
|
||||
if (a.group === b.group) {
|
||||
return a.command.localeCompare(b.command);
|
||||
} else {
|
||||
return a.group.localeCompare(b.group);
|
||||
}
|
||||
});
|
||||
packageJson.contributes.commands.sort((a, b) => a.command.localeCompare(b.command));
|
||||
await fse.writeFile(fsPath, JSON.stringify(packageJson, undefined, 4));
|
||||
// tslint:enable: no-any no-unsafe-any
|
||||
function webpackProdTask() {
|
||||
return gulp_webpack('production');
|
||||
}
|
||||
|
||||
exports.sortPackageJson = sortPackageJson;
|
||||
exports['webpack-dev'] = () => gulp_webpack('development');
|
||||
exports['webpack-prod'] = () => gulp_webpack('production');
|
||||
exports.test = gulp.series(gulp_installAzureAccount, allTest);
|
||||
exports['unit-test'] = gulp.series(gulp_installAzureAccount, unitTest);
|
||||
function vscePackageTask() {
|
||||
return vsce.createVSIX();
|
||||
}
|
||||
|
||||
gulp.task('build', compileTask);
|
||||
gulp.task('lint', lintTask);
|
||||
gulp.task('package', gulp.series(compileTask, webpackProdTask, vscePackageTask));
|
||||
gulp.task('test', gulp.series(gulp_installAzureAccount, compileTask, webpackProdTask, allTestsTask));
|
||||
gulp.task('unit-test', gulp.series(gulp_installAzureAccount, compileTask, webpackProdTask, unitTestsTask));
|
||||
gulp.task('webpack-dev', gulp.series(compileTask, webpackDevTask));
|
||||
gulp.task('webpack-prod', gulp.series(compileTask, webpackProdTask));
|
||||
|
||||
gulp.task('ci-build', gulp.series(gulp_installAzureAccount, compileTask, webpackProdTask, allTestsTask));
|
||||
gulp.task('ci-package', gulp.series('ci-build', vscePackageTask));
|
||||
|
||||
gulp.task('test-only', gulp.series(gulp_installAzureAccount, allTestsTask));
|
||||
|
|
|
@ -24,6 +24,37 @@
|
|||
"js-tokens": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@gulp-sourcemaps/identity-map": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz",
|
||||
"integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"acorn": "^5.0.3",
|
||||
"css": "^2.2.1",
|
||||
"normalize-path": "^2.1.1",
|
||||
"source-map": "^0.6.0",
|
||||
"through2": "^2.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@gulp-sourcemaps/map-sources": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz",
|
||||
"integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"normalize-path": "^2.0.1",
|
||||
"through2": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"@types/adm-zip": {
|
||||
"version": "0.4.32",
|
||||
"resolved": "https://registry.npmjs.org/@types/adm-zip/-/adm-zip-0.4.32.tgz",
|
||||
|
@ -2606,6 +2637,26 @@
|
|||
"randomfill": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"css": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
|
||||
"integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"source-map": "^0.6.1",
|
||||
"source-map-resolve": "^0.5.2",
|
||||
"urix": "^0.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"css-loader": {
|
||||
"version": "0.9.1",
|
||||
"resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.9.1.tgz",
|
||||
|
@ -2717,6 +2768,17 @@
|
|||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"debug-fabulous": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz",
|
||||
"integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "3.X",
|
||||
"memoizee": "0.4.X",
|
||||
"object-assign": "4.X"
|
||||
}
|
||||
},
|
||||
"decamelize": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||
|
@ -2955,6 +3017,12 @@
|
|||
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
|
||||
"dev": true
|
||||
},
|
||||
"detect-newline": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
|
||||
"integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
|
||||
"dev": true
|
||||
},
|
||||
"diagnostic-channel": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz",
|
||||
|
@ -4055,6 +4123,16 @@
|
|||
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
|
||||
"dev": true
|
||||
},
|
||||
"event-emitter": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||
"integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"event-stream": {
|
||||
"version": "3.3.5",
|
||||
"resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.5.tgz",
|
||||
|
@ -5630,6 +5708,81 @@
|
|||
"vinyl": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"gulp-eslint": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-6.0.0.tgz",
|
||||
"integrity": "sha512-dCVPSh1sA+UVhn7JSQt7KEb4An2sQNbOdB3PA8UCfxsoPlAKjJHxYHGXdXC7eb+V1FAnilSFFqslPrq037l1ig==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"eslint": "^6.0.0",
|
||||
"fancy-log": "^1.3.2",
|
||||
"plugin-error": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"gulp-sourcemaps": {
|
||||
"version": "2.6.5",
|
||||
"resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz",
|
||||
"integrity": "sha512-SYLBRzPTew8T5Suh2U8jCSDKY+4NARua4aqjj8HOysBh2tSgT9u4jc1FYirAdPx1akUxxDeK++fqw6Jg0LkQRg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@gulp-sourcemaps/identity-map": "1.X",
|
||||
"@gulp-sourcemaps/map-sources": "1.X",
|
||||
"acorn": "5.X",
|
||||
"convert-source-map": "1.X",
|
||||
"css": "2.X",
|
||||
"debug-fabulous": "1.X",
|
||||
"detect-newline": "2.X",
|
||||
"graceful-fs": "4.X",
|
||||
"source-map": "~0.6.0",
|
||||
"strip-bom-string": "1.X",
|
||||
"through2": "2.X"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"gulp-typescript": {
|
||||
"version": "6.0.0-alpha.1",
|
||||
"resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-6.0.0-alpha.1.tgz",
|
||||
"integrity": "sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-colors": "^4.1.1",
|
||||
"plugin-error": "^1.0.1",
|
||||
"source-map": "^0.7.3",
|
||||
"through2": "^3.0.1",
|
||||
"vinyl": "^2.2.0",
|
||||
"vinyl-fs": "^3.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-colors": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
|
||||
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.7.3",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
|
||||
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
|
||||
"dev": true
|
||||
},
|
||||
"through2": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
|
||||
"integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"readable-stream": "2 || 3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"gulplog": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
|
||||
|
@ -6737,6 +6890,15 @@
|
|||
"yallist": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"lru-queue": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
||||
"integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.2"
|
||||
}
|
||||
},
|
||||
"make-array": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/make-array/-/make-array-1.0.5.tgz",
|
||||
|
@ -6893,6 +7055,22 @@
|
|||
"p-is-promise": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"memoizee": {
|
||||
"version": "0.4.14",
|
||||
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz",
|
||||
"integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.45",
|
||||
"es6-weak-map": "^2.0.2",
|
||||
"event-emitter": "^0.3.5",
|
||||
"is-promise": "^2.1",
|
||||
"lru-queue": "0.1",
|
||||
"next-tick": "1",
|
||||
"timers-ext": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"memory-fs": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
|
||||
|
@ -9557,6 +9735,12 @@
|
|||
"is-utf8": "^0.2.0"
|
||||
}
|
||||
},
|
||||
"strip-bom-string": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
|
||||
"integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-dirs": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
|
||||
|
@ -9958,6 +10142,16 @@
|
|||
"setimmediate": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"timers-ext": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
|
||||
"integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.46",
|
||||
"next-tick": "1"
|
||||
}
|
||||
},
|
||||
"tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
|
|
24
package.json
24
package.json
|
@ -2412,19 +2412,18 @@
|
|||
"vscode": "^1.41.0"
|
||||
},
|
||||
"scripts": {
|
||||
"vscode:prepublish": "npm run webpack-prod",
|
||||
"build": "tsc -p ./",
|
||||
"compile": "tsc -watch -p ./",
|
||||
"package": "vsce package",
|
||||
"lint": "eslint \"src/**/*.ts\"",
|
||||
"lint-fix": "eslint \"src/**/*.ts\" --fix",
|
||||
"postinstall": "node ./node_modules/vscode/bin/install",
|
||||
"pretest": "npm run build && npm run webpack",
|
||||
"watch": "tsc -watch -p ./",
|
||||
"build": "gulp build",
|
||||
"ci-build": "gulp ci-build",
|
||||
"package": "gulp package",
|
||||
"ci-package": "gulp ci-package",
|
||||
"lint": "gulp lint",
|
||||
"test": "gulp test",
|
||||
"all": "npm i && npm run lint && npm test",
|
||||
"webpack": "gulp webpack-dev",
|
||||
"webpack-prod": "gulp webpack-prod",
|
||||
"webpack-profile": "webpack --profile --json --mode production > webpack-stats.json && echo Use http://webpack.github.io/analyse to analyze the stats"
|
||||
"test-only": "gulp test-only",
|
||||
"unit-test": "gulp unit-test",
|
||||
"webpack-dev": "gulp webpack-dev",
|
||||
"webpack-prod": "gulp webpack-prod"
|
||||
},
|
||||
"extensionDependencies": [
|
||||
"vscode.docker",
|
||||
|
@ -2453,6 +2452,9 @@
|
|||
"eslint-plugin-import": "^2.20.1",
|
||||
"eslint-plugin-unicorn": "^14.0.1",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-eslint": "^6.0.0",
|
||||
"gulp-sourcemaps": "^2.6.5",
|
||||
"gulp-typescript": "^6.0.0-alpha.1",
|
||||
"mocha": "^5.2.0",
|
||||
"mocha-junit-reporter": "^1.23.3",
|
||||
"mocha-multi-reporters": "^1.1.7",
|
||||
|
|
Загрузка…
Ссылка в новой задаче