blob: 080da8005983b360f3a550de308b88292bece8ca [file] [log] [blame]
/*
* 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,
},
};