Files
web2.0-frontend/configs/webpack/common.js
T
2018-07-03 12:08:02 +03:00

61 lines
1.5 KiB
JavaScript

// Shared config (dev and prod)
const {resolve} = require("path");
const {CheckerPlugin} = require("awesome-typescript-loader");
const StyleLintPlugin = require("stylelint-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const Dotenv = require("dotenv-webpack");
module.exports = {
resolve: {
extensions: [".ts", ".tsx", ".js", ".jsx"]
},
context: resolve(__dirname, "../../src"),
module: {
rules: [
{
test: /\.js$/,
use: ["babel-loader", "source-map-loader"],
exclude: /node_modules/
},
{
test: /\.tsx?$/,
use: ["babel-loader", "awesome-typescript-loader"]
},
{
test: /\.css$/,
use: ["style-loader", {loader: "css-loader", options: {importLoaders: 1}}, "postcss-loader"]
},
{
test: /\.scss$/,
loaders: [
"style-loader",
{loader: "css-loader", options: {importLoaders: 1}},
"postcss-loader",
"sass-loader"
]
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
loaders: [
"file-loader?hash=sha512&digest=hex&name=img/[hash].[ext]",
"image-webpack-loader?bypassOnDebug&optipng.optimizationLevel=7&gifsicle.interlaced=false"
]
}
]
},
plugins: [
new CheckerPlugin(),
new StyleLintPlugin(),
new HtmlWebpackPlugin({template: "index.html.ejs"}),
new Dotenv({
path: "./.env.sample"
}),
new Dotenv({
path: "./.env"
})
],
performance: {
hints: false
}
};