From adc5017a17e3fddab17b51e6cb5e3064663921e9 Mon Sep 17 00:00:00 2001 From: Brandon Goddard <42152559+bgoddar@users.noreply.github.com> Date: Thu, 15 Apr 2021 14:16:33 -0500 Subject: [PATCH] Update default start page to included startpage/index.html (#350) * update default start page to included startpage/index.html * pr feedback --- package-lock.json | 95 +++++++++++++++++++++++++++++++++++++++ package.json | 6 ++- src/utils.ts | 2 +- webpack.config.ts | 112 +++++++++++++++++++++++++--------------------- 4 files changed, 161 insertions(+), 54 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4117ba66..c4c4a737 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1444,6 +1444,12 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", + "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", + "dev": true + }, "@types/babel__core": { "version": "7.1.14", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", @@ -1491,6 +1497,15 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/copy-webpack-plugin": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@types/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", + "integrity": "sha512-jnM0aMsaMTBr+xlMIO/fu+ZXIbSncmj4UB9ZHTXVfZJsUwGqtdfdSfz1/S8O99R9k7G5V6KhbAd8+QL0f2kUkg==", + "dev": true, + "requires": { + "@types/webpack": "^4" + } + }, "@types/eslint": { "version": "7.2.7", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz", @@ -1617,6 +1632,12 @@ "@types/puppeteer": "*" } }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, "@types/source-map": { "version": "0.1.29", "resolved": "https://registry.npmjs.org/@types/source-map/-/source-map-0.1.29.tgz", @@ -1628,12 +1649,60 @@ "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", "dev": true }, + "@types/tapable": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz", + "integrity": "sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==", + "dev": true + }, + "@types/uglify-js": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz", + "integrity": "sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, "@types/vscode": { "version": "1.48.0", "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.48.0.tgz", "integrity": "sha512-sZJKzsJz1gSoFXcOJWw3fnKl2sseUgZmvB4AJZS+Fea+bC/jfGPVhmFL/FfQHld/TKtukVONsmoD3Pkyx9iadg==", "dev": true }, + "@types/webpack": { + "version": "4.41.27", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz", + "integrity": "sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA==", + "dev": true, + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + } + }, + "@types/webpack-sources": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz", + "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "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 + } + } + }, "@types/ws": { "version": "7.2.6", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz", @@ -2949,6 +3018,32 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, + "copy-webpack-plugin": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz", + "integrity": "sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==", + "dev": true, + "requires": { + "fast-glob": "^3.2.5", + "glob-parent": "^5.1.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", diff --git a/package.json b/package.json index 77d6211c..98db7346 100644 --- a/package.json +++ b/package.json @@ -131,7 +131,7 @@ }, "vscode-edge-devtools.defaultUrl": { "type": "string", - "default": "about:blank", + "default": "", "description": "The default url to open when launching the browser without a target" }, "vscode-edge-devtools.userDataDir": { @@ -556,6 +556,7 @@ }, "devDependencies": { "@opentelemetry/tracing": "0.18.0", + "@types/copy-webpack-plugin": "^6.4.1", "@types/fs-extra": "9.0.8", "@types/jest": "26.0.13", "@types/node": "14.6.3", @@ -564,8 +565,9 @@ "@types/ws": "7.2.6", "@typescript-eslint/eslint-plugin": "4.19.0", "@typescript-eslint/parser": "4.19.0", + "copy-webpack-plugin": "8.1.1", "eslint": "7.22.0", - "eslint-plugin-import": "^2.22.1", + "eslint-plugin-import": "2.22.1", "eslint-plugin-jsdoc": "32.3.0", "eslint-plugin-prefer-arrow": "1.2.3", "fs-extra": "9.1.0", diff --git a/src/utils.ts b/src/utils.ts index 866e458f..c34d8325 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -66,7 +66,7 @@ export const SETTINGS_STORE_NAME = 'vscode-edge-devtools'; export const SETTINGS_DEFAULT_USE_HTTPS = false; export const SETTINGS_DEFAULT_HOSTNAME = 'localhost'; export const SETTINGS_DEFAULT_PORT = 9222; -export const SETTINGS_DEFAULT_URL = 'about:blank'; +export const SETTINGS_DEFAULT_URL = path.resolve(path.join(__dirname, 'startpage', 'index.html')); export const SETTINGS_WEBVIEW_NAME = 'Edge DevTools'; export const SETTINGS_PREF_NAME = 'devtools-preferences'; export const SETTINGS_PREF_DEFAULTS = { diff --git a/webpack.config.ts b/webpack.config.ts index 24570205..78ed6a27 100644 --- a/webpack.config.ts +++ b/webpack.config.ts @@ -1,51 +1,61 @@ -import path from 'path'; - -const commonConfig = { - devtool: 'source-map', - mode: 'development', - module: { - rules: [ - { - exclude: /node_modules/, - test: /\.tsx?$/, - use: 'ts-loader', - }, - ], - }, - resolve: { - extensions: ['.tsx', '.ts', '.js'], - }, -}; - -module.exports = [ - { - ...commonConfig, - entry: { - host: './src/host/mainHost.ts', - messaging: './src/host/mainMessaging.ts', - }, - name: 'host', - output: { - filename: '[name].bundle.js', - path: path.resolve(__dirname, 'out/host'), - }, - }, - { - ...commonConfig, - entry: { - extension: './src/extension.ts', - }, - externals: { - vscode: 'commonjs vscode', - }, - name: 'extension', - output: { - devtoolModuleFilenameTemplate: '../[resource-path]', - filename: '[name].js', - libraryTarget: 'commonjs2', - path: path.resolve(__dirname, 'out'), - }, - stats: 'errors-only', // Bug ws package includes dev-dependencies which webpack will report as warnings - target: 'node', - }, -]; +import copyPlugin from 'copy-webpack-plugin'; +import path from 'path'; + +const commonConfig = { + devtool: 'source-map', + mode: 'development', + module: { + rules: [ + { + exclude: /node_modules/, + test: /\.tsx?$/, + use: 'ts-loader', + }, + ], + }, + resolve: { + extensions: ['.tsx', '.ts', '.js'], + }, +}; + +module.exports = [ + { + ...commonConfig, + entry: { + host: './src/host/mainHost.ts', + messaging: './src/host/mainMessaging.ts', + }, + name: 'host', + output: { + filename: '[name].bundle.js', + path: path.resolve(__dirname, 'out/host'), + }, + }, + { + ...commonConfig, + entry: { + extension: './src/extension.ts', + }, + externals: { + vscode: 'commonjs vscode', + }, + name: 'extension', + output: { + devtoolModuleFilenameTemplate: '../[resource-path]', + filename: '[name].js', + libraryTarget: 'commonjs2', + path: path.resolve(__dirname, 'out'), + }, + stats: 'errors-only', // Bug ws package includes dev-dependencies which webpack will report as warnings + target: 'node', + // Copy startpage html to output bundle + plugins: [ + new copyPlugin({ + patterns: [ + { from: 'startpage', to: 'startpage'}, + { from: 'icon.png', to: 'icon.png'}, + ], + }), + ], + }, +];