gitpod/components/supervisor/frontend/webpack.config.js

68 lines
2.1 KiB
JavaScript

/**
* Copyright (c) 2020 TypeFox 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 HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: path.resolve(__dirname, 'lib/index.js'),
output: {
filename: '[name].js',
chunkFilename: '[name].js',
path: path.resolve(__dirname, 'dist')
},
plugins: [new HtmlWebpackPlugin({
meta: {
"referrer": "origin"
},
favicon: 'public/favicon.ico',
base: '_supervisor/frontend/',
title: 'Gitpod'
})],
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'
};