@mongodb-js/compass-query-bar
Version:
Renders a component for executing MongoDB queries through a GUI.
121 lines (119 loc) • 3.26 kB
JavaScript
const path = require('path');
const project = require('./project');
module.exports = {
target: 'electron-renderer', // webpack should compile node compatible code for tests
stats: 'errors-only',
externals: {
'jsdom': 'window',
'react/addons': 'react',
'react/lib/ExecutionEnvironment': 'react',
'react/lib/ReactContext': 'react',
'react-addons-test-utils': 'react-dom'
},
resolve: {
modules: ['node_modules'],
extensions: ['.js', '.jsx', '.json', 'less'],
alias: {
actions: path.join(project.path.src, 'actions'),
components: path.join(project.path.src, 'components'),
constants: path.join(project.path.src, 'constants'),
fonts: path.join(project.path.src, 'assets/fonts'),
images: path.join(project.path.src, 'assets/images'),
less: path.join(project.path.src, 'assets/less'),
models: path.join(project.path.src, 'models'),
plugin: path.join(project.path.src, 'index.js'),
stores: path.join(project.path.src, 'stores'),
storybook: project.path.storybook
}
},
module: {
rules: [
{
test: /\.css$/,
use: [
{ loader: 'style-loader'},
{ loader: 'css-loader' }
]
},
// For styles that have to be global (see https://github.com/css-modules/css-modules/pull/65)
{
test: /\.less$/,
include: [/\.global/, /bootstrap/],
use: [
{ loader: 'style-loader' },
{
loader: 'css-loader',
options: {
modules: false
}
},
{
loader: 'postcss-loader',
options: {
plugins: function() {
return [
project.plugin.autoprefixer
];
}
}
},
{
loader: 'less-loader',
options: {
noIeCompat: true
}
}
]
},
// For CSS-Modules locally scoped styles
{
test: /\.less$/,
exclude: [/\.global/, /bootstrap/, /node_modules/],
use: [
{ loader: 'style-loader' },
{
loader: 'css-loader',
options: {
modules: true,
importLoaders: 1,
localIdentName: 'QueryBar_[name]-[local]__[hash:base64:5]'
}
},
{
loader: 'postcss-loader',
options: {
plugins: function() {
return [
project.plugin.autoprefixer
];
}
}
},
{
loader: 'less-loader',
options: {
noIeCompat: true
}
}
]
},
{
test: /node_modules\/JSONStream\/index\.js$/,
use: [{ loader: 'shebang-loader' }]
},
{
test: /\.(js|jsx)$/,
use: [{ loader: 'babel-loader' }],
exclude: /(node_modules)/
},
{
test: /\.(png|jpg|jpeg|gif|svg)$/,
use: [{ loader: 'ignore-loader' }]
},
{
test: /\.(woff|woff2|ttf|eot)(\?v=\d+\.\d+\.\d+)?$/,
use: [{ loader: 'ignore-loader' }]
}
]
}
};