cuz
Version:
Front-end modular development kit.
59 lines (52 loc) • 1.93 kB
JavaScript
const fs = require('fs');
const path = require('path');
const webpack = require('webpack');
const basedir = process.cwd();
const { port = 5000 } = require(basedir + '/src/config.js');
const babelrc = fs.readFileSync(__dirname + '/../../.babelrc');
let babelLoaderQuery = {};
try {
babelLoaderQuery = JSON.parse(babelrc);
} catch (err) {
console.error('ERROR: Error parsing your .babelrc.');
console.error(err);
}
babelLoaderQuery.plugins = babelLoaderQuery.plugins || [];
babelLoaderQuery.plugins.push('react-transform');
babelLoaderQuery.extra = babelLoaderQuery.extra || {};
babelLoaderQuery.extra['react-transform'] = {
transforms: [{
transform: 'react-transform-hmr',
imports: ['react'],
locals: ['module']
}]
};
module.exports = {
devtool: 'cheap-module-eval-source-map',
entry: [
`webpack-dev-server/client?http://localhost:${port}`,
'webpack/hot/only-dev-server',
'font-awesome-webpack!./node_modules/cuz/src/cli/font-awesome.config.js',
'./src/index'
],
output: {
path: path.join(__dirname, 'debug'),
filename: 'index.js',
publicPath: `http://localhost:${port}/`
},
plugins: [
new webpack.HotModuleReplacementPlugin()
],
module: {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loaders: ['babel?' + JSON.stringify(babelLoaderQuery)] },
{ test: /\.css$/, loader: 'style!css' },
{ test: /\.(jpe?g|png|gif|svg)$/i, loader: 'url' },
{ test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff' },
{ test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff' },
{ test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream' },
{ test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file' },
{ test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml' }
]
}
};