mirror of
https://github.com/empayre/fleet.git
synced 2024-11-06 08:55:24 +00:00
759a69b5b7
- Replace uses of deprecated Bourbon helpers with raw CSS - Add autoprefixer into the build chain to prefix the now removed helpers This process was achieved by running through each of the deprecation warnings and using the following bash function to replace it in all files: ``` function bourbon-deprecate() { grep -rl "@include $1" ./frontend --exclude-dir=.git | xargs sed -i '' -E "s/@include $1[(](.*)[)]/$1: \1/g" } ``` For some helpers, this did not result in valid CSS, so manual modifications were made. Closes #1189 #1274
103 lines
2.9 KiB
JavaScript
103 lines
2.9 KiB
JavaScript
require('es6-promise').polyfill();
|
|
|
|
var path = require('path');
|
|
var webpack = require('webpack');
|
|
var ExtractTextPlugin = require("extract-text-webpack-plugin");
|
|
var bourbon = require('node-bourbon').includePaths;
|
|
var HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
var WebpackNotifierPlugin = require('webpack-notifier');
|
|
|
|
var plugins = [
|
|
new webpack.NoEmitOnErrorsPlugin(),
|
|
new HtmlWebpackPlugin({
|
|
filename: '../frontend/templates/react.tmpl',
|
|
inject: false,
|
|
template: 'frontend/templates/react.ejs'
|
|
}),
|
|
new WebpackNotifierPlugin({
|
|
title: "Kolide",
|
|
contentImage: path.resolve("./assets/images/kolide-logo.svg"),
|
|
excludeWarnings: true
|
|
})
|
|
];
|
|
|
|
if (process.env.NODE_ENV === 'production') {
|
|
plugins = plugins.concat([
|
|
new webpack.optimize.UglifyJsPlugin({
|
|
compress: {warnings: false},
|
|
output: {comments: false}
|
|
}),
|
|
new webpack.DefinePlugin({
|
|
'process.env': {NODE_ENV: JSON.stringify('production')}
|
|
}),
|
|
new ExtractTextPlugin({ filename: 'bundle-[contenthash].css', allChunks: false })
|
|
]);
|
|
} else {
|
|
plugins = plugins.concat([
|
|
new ExtractTextPlugin({ filename: 'bundle.css', allChunks: false })
|
|
]);
|
|
}
|
|
|
|
var repo = __dirname
|
|
|
|
var config = {
|
|
entry: {
|
|
bundle: path.join(repo, 'frontend/index.jsx')
|
|
},
|
|
output: {
|
|
path: path.join(repo, 'assets/'),
|
|
publicPath: "/assets/",
|
|
filename: '[name].js'
|
|
},
|
|
plugins: plugins,
|
|
module: {
|
|
// The following noParse suppresses the warning about sqlite-parser being a
|
|
// pre-compiled JS file. See https://goo.gl/N4s6bB.
|
|
noParse: /node_modules\/sqlite-parser\/dist\/sqlite-parser-min.js/,
|
|
rules: [
|
|
{ test: /\.(png|gif)$/, use: { loader: 'url-loader?name=[name]@[hash].[ext]&limit=6000' } },
|
|
{ test: /\.(pdf|ico|jpg|svg|eot|otf|woff|ttf|mp4|webm)$/, use: { loader: 'file-loader?name=[name]@[hash].[ext]' } },
|
|
{ test: /\.json$/, use: { loader: 'raw-loader' } },
|
|
{ test: /\.tsx?$/, exclude: /node_modules/, use: { loader: 'ts-loader' } },
|
|
{
|
|
test: /\.scss$/,
|
|
exclude: /node_modules/,
|
|
use: ExtractTextPlugin.extract({ fallback: 'style-loader', use: [
|
|
{ loader: 'css-loader' },
|
|
{ loader: 'postcss-loader' },
|
|
{
|
|
loader: 'sass-loader',
|
|
options: {
|
|
sourceMap: true,
|
|
includePaths: [ bourbon ]
|
|
}
|
|
},
|
|
{ loader: 'import-glob-loader' }
|
|
]})
|
|
},
|
|
{
|
|
test: /\.css$/,
|
|
use: ExtractTextPlugin.extract({ fallback: 'style-loader', use: ['css-loader', 'postcss-loader'] })
|
|
},
|
|
{
|
|
test: /\.jsx?$/,
|
|
include: path.join(repo, 'frontend'),
|
|
use: [ 'babel-loader' ]
|
|
}
|
|
]
|
|
},
|
|
resolve: {
|
|
extensions: ['.js', '.jsx', '.json'],
|
|
modules: [
|
|
path.resolve(path.join(repo, './frontend')),
|
|
"node_modules"
|
|
]
|
|
}
|
|
};
|
|
|
|
if (process.env.NODE_ENV === 'production') {
|
|
config.output.filename = "[name]-[hash].js"
|
|
}
|
|
|
|
module.exports = config;
|