ffbt
Version:
Build a Typescript app without pain
74 lines (73 loc) • 2.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const autoprefixer = require("autoprefixer");
const importOnce = require("../../node-sass-import-once");
const layer = (projectConfig) => {
return {
module: {
rules: [
{
test: /\.s[ac]ss$/i,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: '',
},
},
"css-loader",
{
loader: "postcss-loader",
options: {
plugins: [
autoprefixer(projectConfig.env.browserlist),
],
},
},
{
loader: "sass-loader",
options: {
sassOptions: {
importer: importOnce(projectConfig.paths.projectNodeModules || ""),
importOnce: {
index: true,
css: false,
bower: false,
},
}
},
},
],
},
{
test: /\.css$/i,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: '',
},
},
"css-loader",
{
loader: "postcss-loader",
options: {
plugins: [
autoprefixer(projectConfig.env.browserlist),
],
},
},
]
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: projectConfig.env.enableCacheBusting ? "[name].[contenthash].css" : "[name].css",
chunkFilename: projectConfig.env.enableCacheBusting ? "[id].[contenthash].css" : "[id].css",
}),
],
};
};
module.exports = layer;