xref: /aosp_15_r20/development/tools/winscope/webpack.config.common.js (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1*90c8c64dSAndroid Build Coastguard Worker/*
2*90c8c64dSAndroid Build Coastguard Worker * Copyright (C) 2022 The Android Open Source Project
3*90c8c64dSAndroid Build Coastguard Worker *
4*90c8c64dSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*90c8c64dSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*90c8c64dSAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*90c8c64dSAndroid Build Coastguard Worker *
8*90c8c64dSAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*90c8c64dSAndroid Build Coastguard Worker *
10*90c8c64dSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*90c8c64dSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*90c8c64dSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*90c8c64dSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*90c8c64dSAndroid Build Coastguard Worker * limitations under the License.
15*90c8c64dSAndroid Build Coastguard Worker */
16*90c8c64dSAndroid Build Coastguard Workerconst path = require('path');
17*90c8c64dSAndroid Build Coastguard Workerconst TerserPlugin = require('terser-webpack-plugin');
18*90c8c64dSAndroid Build Coastguard Worker
19*90c8c64dSAndroid Build Coastguard Workermodule.exports = {
20*90c8c64dSAndroid Build Coastguard Worker  devtool: 'inline-source-map',
21*90c8c64dSAndroid Build Coastguard Worker  resolve: {
22*90c8c64dSAndroid Build Coastguard Worker    extensions: ['.ts', '.js', '.css'],
23*90c8c64dSAndroid Build Coastguard Worker    modules: [
24*90c8c64dSAndroid Build Coastguard Worker      'node_modules',
25*90c8c64dSAndroid Build Coastguard Worker      'src',
26*90c8c64dSAndroid Build Coastguard Worker      'deps_build',
27*90c8c64dSAndroid Build Coastguard Worker      __dirname,
28*90c8c64dSAndroid Build Coastguard Worker      path.resolve(__dirname, '../../..'),
29*90c8c64dSAndroid Build Coastguard Worker    ],
30*90c8c64dSAndroid Build Coastguard Worker  },
31*90c8c64dSAndroid Build Coastguard Worker
32*90c8c64dSAndroid Build Coastguard Worker  resolveLoader: {
33*90c8c64dSAndroid Build Coastguard Worker    modules: ['node_modules', path.resolve(__dirname, 'loaders')],
34*90c8c64dSAndroid Build Coastguard Worker  },
35*90c8c64dSAndroid Build Coastguard Worker
36*90c8c64dSAndroid Build Coastguard Worker  module: {
37*90c8c64dSAndroid Build Coastguard Worker    rules: [
38*90c8c64dSAndroid Build Coastguard Worker      {
39*90c8c64dSAndroid Build Coastguard Worker        test: /^((?!test).)*\.ts$/,
40*90c8c64dSAndroid Build Coastguard Worker        include: [path.resolve('src')],
41*90c8c64dSAndroid Build Coastguard Worker        loader: '@ephesoft/webpack.istanbul.loader', // Must be first loader
42*90c8c64dSAndroid Build Coastguard Worker        options: {esModules: true},
43*90c8c64dSAndroid Build Coastguard Worker        enforce: 'post',
44*90c8c64dSAndroid Build Coastguard Worker      },
45*90c8c64dSAndroid Build Coastguard Worker      {
46*90c8c64dSAndroid Build Coastguard Worker        test: /\.ts$/,
47*90c8c64dSAndroid Build Coastguard Worker        use: ['ts-loader', 'angular2-template-loader'],
48*90c8c64dSAndroid Build Coastguard Worker      },
49*90c8c64dSAndroid Build Coastguard Worker      {
50*90c8c64dSAndroid Build Coastguard Worker        test: /\.html$/,
51*90c8c64dSAndroid Build Coastguard Worker        use: ['html-loader'],
52*90c8c64dSAndroid Build Coastguard Worker      },
53*90c8c64dSAndroid Build Coastguard Worker      {
54*90c8c64dSAndroid Build Coastguard Worker        test: /\.css$/,
55*90c8c64dSAndroid Build Coastguard Worker        use: ['style-loader', 'css-loader'],
56*90c8c64dSAndroid Build Coastguard Worker      },
57*90c8c64dSAndroid Build Coastguard Worker      {
58*90c8c64dSAndroid Build Coastguard Worker        test: /\.s[ac]ss$/i,
59*90c8c64dSAndroid Build Coastguard Worker        use: ['style-loader', 'css-loader', 'sass-loader'],
60*90c8c64dSAndroid Build Coastguard Worker      },
61*90c8c64dSAndroid Build Coastguard Worker    ],
62*90c8c64dSAndroid Build Coastguard Worker  },
63*90c8c64dSAndroid Build Coastguard Worker
64*90c8c64dSAndroid Build Coastguard Worker  optimization: {
65*90c8c64dSAndroid Build Coastguard Worker    minimizer: [
66*90c8c64dSAndroid Build Coastguard Worker      new TerserPlugin({
67*90c8c64dSAndroid Build Coastguard Worker        terserOptions: {
68*90c8c64dSAndroid Build Coastguard Worker          keep_fnames: true,
69*90c8c64dSAndroid Build Coastguard Worker        },
70*90c8c64dSAndroid Build Coastguard Worker      }),
71*90c8c64dSAndroid Build Coastguard Worker    ],
72*90c8c64dSAndroid Build Coastguard Worker  },
73*90c8c64dSAndroid Build Coastguard Worker};
74