summaryrefslogtreecommitdiff
path: root/webpack.config.js
diff options
context:
space:
mode:
authorbscan <10503608+bscan@users.noreply.github.com>2023-01-15 17:09:29 -0500
committerbscan <10503608+bscan@users.noreply.github.com>2023-01-15 17:09:29 -0500
commit2c17a5096fa5c9310ffea8d478e30c7175b0b125 (patch)
treec82c5eacfc4d6213eca7bc49b75263c047c34d94 /webpack.config.js
parentd8b9250e26f5e86037d401de523478353413564d (diff)
downloadPerlNavigator-2c17a5096fa5c9310ffea8d478e30c7175b0b125.zip
First version of Web Extension. Currently only offers syntax highlighting.
Diffstat (limited to 'webpack.config.js')
-rw-r--r--webpack.config.js103
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