diff options
author | bscan <10503608+bscan@users.noreply.github.com> | 2023-01-15 17:09:29 -0500 |
---|---|---|
committer | bscan <10503608+bscan@users.noreply.github.com> | 2023-01-15 17:09:29 -0500 |
commit | 2c17a5096fa5c9310ffea8d478e30c7175b0b125 (patch) | |
tree | c82c5eacfc4d6213eca7bc49b75263c047c34d94 /webpack.config.js | |
parent | d8b9250e26f5e86037d401de523478353413564d (diff) | |
download | PerlNavigator-2c17a5096fa5c9310ffea8d478e30c7175b0b125.zip |
First version of Web Extension. Currently only offers syntax highlighting.
Diffstat (limited to 'webpack.config.js')
-rw-r--r-- | webpack.config.js | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..c288e3b --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,103 @@ +/* eslint-disable no-undef */ +/* eslint-disable @typescript-eslint/no-var-requires */ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +//@ts-check +'use strict'; + +//@ts-check +/** @typedef {import('webpack').Configuration} WebpackConfig **/ + +const path = require('path'); + +/** @type WebpackConfig */ +const browserClientConfig = { + context: path.join(__dirname, 'client'), + mode: 'none', + target: 'webworker', // web extensions run in a webworker context + entry: { + browserClientMain: './src/browserClientMain.ts', + }, + output: { + filename: '[name].js', + path: path.join(__dirname, 'client', 'dist'), + libraryTarget: 'commonjs', + }, + resolve: { + mainFields: ['module', 'main'], + extensions: ['.ts', '.js'], // support ts-files and js-files + alias: {}, + fallback: { + path: require.resolve('path-browserify'), + }, + }, + module: { + rules: [ + { + test: /\.ts$/, + exclude: /node_modules/, + use: [ + { + loader: 'ts-loader', + }, + ], + }, + ], + }, + externals: { + vscode: 'commonjs vscode', // ignored because it doesn't exist + }, + performance: { + hints: false, + }, + devtool: 'source-map', +}; + +/** @type WebpackConfig */ +const browserServerConfig = { + context: path.join(__dirname, 'browser-ext'), + mode: 'none', + target: 'webworker', // web extensions run in a webworker context + entry: { + browserServerMain: './src/browserServerMain.ts', + }, + output: { + filename: '[name].js', + path: path.join(__dirname, 'browser-ext', 'dist'), + libraryTarget: 'var', + library: 'serverExportVar', + }, + resolve: { + mainFields: ['module', 'main'], + extensions: ['.ts', '.js'], // support ts-files and js-files + alias: {}, + fallback: { + //path: require.resolve("path-browserify") + }, + }, + module: { + rules: [ + { + test: /\.ts$/, + exclude: /node_modules/, + use: [ + { + loader: 'ts-loader', + }, + ], + }, + ], + }, + externals: { + vscode: 'commonjs vscode', // ignored because it doesn't exist + }, + performance: { + hints: false, + }, + devtool: 'source-map', +}; + +module.exports = [browserClientConfig, browserServerConfig];
\ No newline at end of file |