| /* |
| * Copyright 2017, 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 fs = require('fs'); |
| const path = require('path'); |
| const glob = require('glob'); |
| const KotlinWebpackPlugin = require('@jetbrains/kotlin-webpack-plugin'); |
| |
| function getWaylandSafePath() { |
| waylandPath = path.resolve( |
| __dirname, '../../../vendor/google_arc/libs/wayland_service'); |
| if (fs.existsSync(waylandPath)) { |
| return waylandPath; |
| } |
| return path.resolve(__dirname, 'src/stubs'); |
| } |
| |
| module.exports = { |
| entry: { |
| js: glob.sync('./spec/**/*Spec.js'), |
| }, |
| output: { |
| path: path.resolve(__dirname, './dist'), |
| filename: 'bundleSpec.js', |
| }, |
| target: 'node', |
| node: { |
| __dirname: false, |
| }, |
| module: { |
| rules: [ |
| { |
| test: /\.js$/, |
| loader: 'babel-loader', |
| exclude: /node_modules/, |
| }, |
| { |
| test: /\.tsx?$/, |
| use: 'ts-loader', |
| include: path.resolve(__dirname, './src'), |
| exclude: /node_modules/, |
| }, |
| { |
| test: /\.proto$/, |
| loader: 'proto-loader', |
| options: { |
| paths: [ |
| path.resolve(__dirname, '../../..'), |
| path.resolve(__dirname, '../../../external/protobuf/src'), |
| ], |
| }, |
| }, |
| { |
| test: /\.(pb|winscope)/, |
| loader: 'file-loader', |
| options: { |
| paths: [ |
| path.resolve(__dirname, './spec'), |
| ], |
| }, |
| }, |
| ], |
| }, |
| resolve: { |
| extensions: ['.tsx', '.ts', '.js', '.vue'], |
| alias: { |
| '@': path.resolve(__dirname, 'src'), |
| 'WaylandSafePath': getWaylandSafePath(), |
| }, |
| modules: [ |
| 'node_modules', |
| 'kotlin_build', |
| path.resolve(__dirname, '../../..'), |
| ], |
| }, |
| resolveLoader: { |
| modules: [ |
| 'node_modules', |
| path.resolve(__dirname, 'loaders'), |
| ], |
| }, |
| plugins: [ |
| new KotlinWebpackPlugin({ |
| src: [ |
| path.join(__dirname, '../../../platform_testing/libraries/flicker/' + |
| 'src/com/android/server/wm/traces/common/'), |
| ], |
| output: 'kotlin_build', |
| moduleName: 'flicker', |
| librariesAutoLookup: true, |
| sourceMaps: true, |
| sourceMapEmbedSources: 'always', |
| verbose: true, |
| optimize: true, |
| }), |
| ], |
| devServer: { |
| historyApiFallback: true, |
| noInfo: true, |
| }, |
| performance: { |
| hints: false, |
| }, |
| }; |