joyent-portal/frontend/webpack/base.js

84 lines
2.1 KiB
JavaScript
Raw Normal View History

const ExtractTextPlugin = require('extract-text-webpack-plugin');
2016-10-20 04:14:26 +03:00
const pkg = require('../package.json');
const webpack = require('webpack');
2016-10-20 22:42:39 +03:00
const WebpackShellPlugin = require('webpack-shell-plugin');
2016-10-20 04:14:26 +03:00
const path = require('path');
2016-10-24 14:23:05 +03:00
const plugins = {
'no-errors-plugin': new webpack.NoErrorsPlugin(),
'extract-text-plugin': new ExtractTextPlugin({
filename: 'bundle.css',
allChunks: true
}),
'loader-options-plugin': new webpack.LoaderOptionsPlugin({
options: {
postcss: {
2016-10-24 19:38:16 +03:00
plugins: [
require('postcss-modules-values'),
require('postcss-cssnext')()
]
2016-10-24 14:23:05 +03:00
}
}
2016-10-24 20:03:38 +03:00
}),
2016-10-24 14:23:05 +03:00
'define-plugin': new webpack.DefinePlugin({
'process.env': {
2016-10-24 23:58:09 +03:00
NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
2016-10-24 14:23:05 +03:00
APP_NAME: JSON.stringify(pkg.name),
APP_VERSION: JSON.stringify(pkg.version)
}
}),
'shell-plugin': new WebpackShellPlugin({
onBuildStart: ['npm run build-locales']
})
};
2016-10-24 16:11:50 +03:00
exports.config = {
2016-10-20 04:14:26 +03:00
context: path.join(__dirname, '../src'),
output: {
path: path.join(__dirname, '../static'),
publicPath: '/static/',
filename: 'bundle.js'
},
plugins: [
2016-10-24 14:23:05 +03:00
plugins['no-errors-plugin'],
plugins['extract-text-plugin'],
plugins['loader-options-plugin'],
plugins['define-plugin'],
plugins['shell-plugin']
2016-10-20 04:14:26 +03:00
],
module: {
loaders: [{
test: /js?$/,
exclude: /node_modules/,
include: [
path.join(__dirname, '../src')
],
loaders: ['babel']
}, {
test: /\.json?$/,
exclude: /node_modules/,
include: [
path.join(__dirname, '../src')
],
loaders: ['json']
}, {
test: /\.css?$/,
exclude: /node_modules/,
include: [
path.join(__dirname, '../src')
],
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
2016-10-26 12:51:06 +03:00
loader: [
'css-loader?',
'modules&importLoaders=1&',
'localIdentName=[name]__[local]___[hash:base64:5]!',
'postcss-loader'
].join('')
})
}]
2016-10-20 04:14:26 +03:00
}
};
2016-10-24 14:23:05 +03:00
2016-10-24 16:11:50 +03:00
exports.plugins = plugins;