/* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ const path = require('path'); const TerserPlugin = require('terser-webpack-plugin'); module.exports = { devtool: 'inline-source-map', resolve: { extensions: ['.ts', '.js', '.css'], modules: [ 'node_modules', 'src', 'deps_build', __dirname, path.resolve(__dirname, '../../..'), ], }, resolveLoader: { modules: ['node_modules', path.resolve(__dirname, 'loaders')], }, module: { rules: [ { test: /^((?!test).)*\.ts$/, include: [path.resolve('src')], loader: '@ephesoft/webpack.istanbul.loader', // Must be first loader options: {esModules: true}, enforce: 'post', }, { test: /\.ts$/, use: ['ts-loader', 'angular2-template-loader'], }, { test: /\.html$/, use: ['html-loader'], }, { test: /\.css$/, use: ['style-loader', 'css-loader'], }, { test: /\.s[ac]ss$/i, use: ['style-loader', 'css-loader', 'sass-loader'], }, ], }, optimization: { minimizer: [ new TerserPlugin({ terserOptions: { keep_fnames: true, }, }), ], }, };