joyent-portal/ui/webpack/base.js

99 lines
2.5 KiB
JavaScript
Raw Normal View History

2016-10-24 16:14:03 +03:00
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const webpack = require('webpack');
const path = require('path');
2016-10-31 13:00:18 +02:00
const cssFunctions = require('../src/shared/functions');
2016-10-24 16:14:03 +03:00
const plugins = {
'no-errors-plugin': new webpack.NoErrorsPlugin(),
'extract-text-plugin': new ExtractTextPlugin({
filename: 'css/[name].css',
2016-10-24 16:14:03 +03:00
allChunks: true
}),
'loader-options-plugin': new webpack.LoaderOptionsPlugin({
options: {
postcss: {
2016-10-24 19:38:16 +03:00
plugins: [
2016-10-27 18:26:26 +03:00
require('postcss-import')(),
require('postcss-constants')({}),
require('postcss-at-rules-variables')(),
2016-10-31 13:00:18 +02:00
require('postcss-functions')({
functions: cssFunctions
}),
require('postcss-mixins')({
mixinsFiles: path.join(__dirname, '../src/shared/mixins.css')
}),
require('postcss-for'),
2016-10-25 22:15:33 +03:00
require('postcss-cssnext')()
2016-10-24 19:38:16 +03:00
]
2016-10-24 16:14:03 +03:00
},
2016-10-31 19:23:16 +02:00
'embed-markdown-loader': {
mode: 'plain'
}
2016-10-24 16:14:03 +03:00
}
})
};
exports.config = {
context: path.join(__dirname, '../'),
output: {
path: path.join(__dirname, '../static'),
publicPath: '/',
filename: 'js/[name].js'
2016-10-24 16:14:03 +03:00
},
plugins: [
plugins['no-errors-plugin'],
plugins['extract-text-plugin'],
plugins['loader-options-plugin']
],
resolveLoader: {
alias: {
'embed-markdown-loader': path.join(__dirname, './embed-markdown-loader')
}
},
module: {
loaders: [{
test: /js?$/,
exclude: /node_modules/,
include: [
path.join(__dirname, '../src'),
path.join(__dirname, '../docs')
],
loader: 'babel'
}, {
test: /\.json?$/,
exclude: /node_modules/,
include: [
path.join(__dirname, '../src'),
path.join(__dirname, '../docs')
],
loader: 'json'
}, {
test: /\.md?$/,
exclude: /node_modules/,
include: [
path.join(__dirname, '../src'),
path.join(__dirname, '../docs')
],
2016-10-24 16:37:12 +03:00
loader: 'raw-loader!embed-markdown-loader'
2016-10-24 16:14:03 +03:00
}, {
test: /\.css?$/,
exclude: /node_modules/,
include: [
path.join(__dirname, '../src'),
path.join(__dirname, '../docs')
],
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-24 16:14:03 +03:00
})
}]
}
};
exports.plugins = plugins;