diff --git a/.gitignore b/.gitignore index 292de4c1..66422783 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,5 @@ typings/ out/ .DS_Store + +.vscode-test diff --git a/.vscode/launch.json b/.vscode/launch.json index 15a46dee..c174db30 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -16,7 +16,7 @@ "outFiles": [ "${workspaceFolder}/out/**/*.js" ], - "preLaunchTask": "watch" + "preLaunchTask": "npm: watch" }, { "name": "Extension Tests", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 284f03a1..c7cb6002 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -3,51 +3,32 @@ { "version": "2.0.0", "tasks": [ - { - "label": "watch", - "group": "build", - "isBackground": true, - "presentation": { - "reveal": "never", - }, - "problemMatcher": [], - "dependsOn": ["npm: watch", "npm: watch-assets"] - }, { "type": "npm", "script": "watch", - "problemMatcher": "$tsc-watch", - "isBackground": true, - "presentation": { - "reveal": "never" - }, - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "npm", - "script": "watch-assets", - "isBackground": true, - "presentation": { - "reveal": "never", - }, - "group": "build", "problemMatcher": { - "pattern": [ + "owner": "typescript", + "pattern":[ { - "regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$", + "regexp": "\\[tsl\\] ERROR", "file": 1, "location": 2, "message": 3 } ], "background": { - "beginsPattern": "^Webpack is watching the files.*", "activeOnStart": true, - "endsPattern": "^Built at.*" + "beginsPattern": "Compilation \\w+ starting…", + "endsPattern": "Compilation\\s+finished" } + }, + "isBackground": true, + "presentation": { + "reveal": "never" + }, + "group": { + "kind": "build", + "isDefault": true } } ] diff --git a/.vscodeignore b/.vscodeignore index 01902fa0..b68f72db 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -1,4 +1,15 @@ release-notes/**/*.gif release-notes/**/*.png release-notes/**/*.jpg - +node_modules +src +.vscode +.github +.gitignore +package-lock.json +tsconfig.json +tslint.json +webpack.config.ext.js +webpack.config.js +out/**/*.map +out/assets/**/*.js diff --git a/package-lock.json b/package-lock.json index 467a58b4..48a53976 100644 --- a/package-lock.json +++ b/package-lock.json @@ -379,7 +379,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -8327,7 +8327,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { @@ -8747,7 +8747,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { diff --git a/package.json b/package.json index 700cd57f..cfdf0927 100644 --- a/package.json +++ b/package.json @@ -51,11 +51,10 @@ ] }, "scripts": { - "vscode:prepublish": "npm run compile&npm run build-assets", - "compile": "tsc -p ./", - "watch": "tsc -watch -p ./", - "build-assets": "webpack --config webpack.config.js", - "watch-assets": "webpack --config webpack.config.js --watch", + "vscode:prepublish": "npm run build", + "compile": "webpack --config webpack.config.js", + "watch": "webpack --config webpack.config.js --watch --info-verbosity verbose", + "build": "webpack --config webpack.config.js --mode=\"production\"", "postinstall": "node ./node_modules/vscode/bin/install", "test": "npm run compile && node ./node_modules/vscode/bin/test" }, diff --git a/src/overview/index.ts b/src/overview/index.ts index 486c9b11..9af7ffbe 100644 --- a/src/overview/index.ts +++ b/src/overview/index.ts @@ -46,7 +46,7 @@ export async function overviewCmdHandler(context: vscode.ExtensionContext, opera context.globalState.update(KEY_OVERVIEW_LAST_SHOW_TIME, Date.now().toString()); overviewView.iconPath = vscode.Uri.file(path.join(context.extensionPath, 'logo.lowres.png')); - let buffer = await readFile(require.resolve('./assets/index.html')); + let buffer = await readFile(path.join(context.extensionPath, './out/assets/overview/index.html')); overviewView.webview.html = buffer.toString(); overviewView.onDidDispose(() => { diff --git a/webpack.config.js b/webpack.config.js index 895bd5fa..896f38a1 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -5,7 +5,9 @@ const path = require('path'); module.exports = function (env, argv) { env = env || {}; - return { + return [{ + name: 'assets', + mode: 'none', entry: { overview: './src/overview/assets/index.ts' }, @@ -31,19 +33,50 @@ module.exports = function (env, argv) { }] }] }, - mode: 'development', output: { - filename: '[name]/assets/index.js', + filename: 'assets/[name]/index.js', path: path.resolve(__dirname, 'out'), - publicPath: '/' + publicPath: '/', + devtoolModuleFilenameTemplate: "../[resource-path]" }, plugins: [ new HtmlWebpackPlugin({ - filename: path.resolve(__dirname, 'out/overview/assets/index.html'), + filename: path.resolve(__dirname, 'out/assets/overview/index.html'), template: 'src/overview/assets/index.html', inlineSource: '.(js|css)$' }), new HtmlWebpackInlineSourcePlugin(), - ] - } + ], + devtool: 'source-map' + }, { + name: 'extension', + target: 'node', + mode: 'none', + entry: { + extension: './src/extension.ts' + }, + module: { + rules: [{ + test: /\.ts$/, + exclude: /node_modules/, + use: 'ts-loader' + }] + }, + resolve: { + modules: ['node_modules', path.resolve(__dirname, 'src')], + mainFiles: ['index'], + extensions: ['.js', '.ts', '.json'] + }, + output: { + filename: '[name].js', + path: path.resolve(__dirname, 'out'), + libraryTarget: "commonjs2", + publicPath: '/', + devtoolModuleFilenameTemplate: "../[resource-path]" + }, + externals: { + vscode: 'commonjs vscode' + }, + devtool: 'source-map' + }] };