gitpod/components/supervisor/frontend/webpack.config.js
2022-12-08 13:05:19 -03:00

68 lines
2.1 KiB
JavaScript

/**
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
* Licensed under the GNU Affero General Public License (AGPL).
* See License.AGPL.txt in the project root for license information.
*/
// @ts-check
const path = require("path");
const CopyWebpackPlugin = require("copy-webpack-plugin");
module.exports = {
entry: {
main: path.resolve(__dirname, "lib/index.js"),
},
output: {
filename: "[name].js",
chunkFilename: "[name].js",
path: path.resolve(__dirname, "dist"),
},
module: {
rules: [
{
test: /\.css$/i,
use: ["style-loader", "css-loader"],
},
{
test: /\\.js$/,
enforce: "pre",
loader: "source-map-loader",
},
{
test: /\.js$/,
// include only es6 dependencies to transpile them to es5 classes
include: /vscode-ws-jsonrpc|vscode-jsonrpc|vscode-languageserver-protocol|vscode-languageserver-types/,
use: {
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"],
plugins: [
// reuse runtime babel lib instead of generating it in each js file
"@babel/plugin-transform-runtime",
// ensure that classes are transpiled
"@babel/plugin-transform-classes",
],
// see https://github.com/babel/babel/issues/8900#issuecomment-431240426
sourceType: "unambiguous",
cacheDirectory: true,
},
},
},
],
},
node: {
fs: "empty",
child_process: "empty",
net: "empty",
crypto: "empty",
tls: "empty",
},
devtool: "source-map",
plugins: [
new CopyWebpackPlugin({
patterns: [{ from: "public", to: "." }],
}),
],
};