superset/caravel/assets/webpack.config.js

93 lines
2.4 KiB
JavaScript
Raw Normal View History

2016-07-14 22:50:47 -04:00
const path = require('path');
2016-03-18 02:44:58 -04:00
2016-07-14 22:50:47 -04:00
const APP_DIR = path.resolve(__dirname, './'); // input
const BUILD_DIR = path.resolve(__dirname, './javascripts/dist'); // output
const config = {
2016-03-18 02:44:58 -04:00
entry: {
'css-theme': APP_DIR + '/javascripts/css-theme.js',
dashboard: APP_DIR + '/javascripts/dashboard/Dashboard.jsx',
explore: APP_DIR + '/javascripts/explore/explore.jsx',
2016-03-24 17:11:29 -04:00
welcome: APP_DIR + '/javascripts/welcome.js',
2016-03-18 02:44:58 -04:00
sql: APP_DIR + '/javascripts/sql.js',
standalone: APP_DIR + '/javascripts/standalone.js',
common: APP_DIR + '/javascripts/common.js'
2016-03-18 02:44:58 -04:00
},
output: {
path: BUILD_DIR,
filename: '[name].entry.js'
2016-03-18 02:44:58 -04:00
},
resolve: {
2016-07-14 22:50:47 -04:00
extensions: ['', '.js', '.jsx'],
alias: {
webworkify: 'webworkify-webpack'
}
},
2016-03-18 02:44:58 -04:00
module: {
loaders: [
{
2016-07-14 22:50:47 -04:00
test: /\.jsx?$/,
2016-03-18 02:44:58 -04:00
exclude: APP_DIR + '/node_modules',
2016-07-14 22:50:47 -04:00
loader: 'babel',
query: {
presets: ['airbnb', 'es2015', 'react']
2016-07-14 22:50:47 -04:00
}
2016-03-18 02:44:58 -04:00
},
2016-07-14 22:50:47 -04:00
/* for react-map-gl overlays */
{
test: /\.react\.js$/,
include: APP_DIR + '/node_modules/react-map-gl/src/overlays',
loader: 'babel'
},
2016-07-14 22:50:47 -04:00
/* for require('*.css') */
2016-03-18 02:44:58 -04:00
{
test: /\.css$/,
include: APP_DIR,
loader: "style-loader!css-loader"
},
2016-07-14 22:50:47 -04:00
/* for css linking images */
2016-03-18 02:44:58 -04:00
{ test: /\.png$/, loader: "url-loader?limit=100000" },
{ test: /\.jpg$/, loader: "file-loader" },
{ test: /\.gif$/, loader: "file-loader" },
2016-07-14 22:50:47 -04:00
/* for font-awesome */
2016-03-18 02:44:58 -04:00
{ test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=10000&minetype=application/font-woff" },
{ test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file-loader" },
2016-07-14 22:50:47 -04:00
/* for require('*.less') */
2016-03-18 02:44:58 -04:00
{
test: /\.less$/,
include: APP_DIR,
loader: "style!css!less"
},
2016-07-14 22:50:47 -04:00
/* for mapbox */
{
test: /\.json$/,
loader: 'json-loader'
2016-07-14 22:50:47 -04:00
},
{
test: /\.js$/,
include: APP_DIR + '/node_modules/mapbox-gl/js/render/painter/use_program.js',
loader: 'transform/cacheable?brfs'
2016-03-18 02:44:58 -04:00
}
],
postLoaders: [{
include: /node_modules\/mapbox-gl/,
loader: 'transform',
query: 'brfs'
}]
2016-03-18 02:44:58 -04:00
},
2016-07-14 22:50:47 -04:00
externals: {
cheerio: 'window',
'react/lib/ExecutionEnvironment': true,
'react/lib/ReactContext': true
},
2016-03-18 02:44:58 -04:00
plugins: []
};
module.exports = config;