88 lines
2.8 KiB
JavaScript
88 lines
2.8 KiB
JavaScript
'use strict';
|
|
|
|
var path = require('path');
|
|
var webpack = require('sgmf-scripts').webpack;
|
|
var ExtractTextPlugin = require('sgmf-scripts')['extract-text-webpack-plugin'];
|
|
var jsFiles = require('sgmf-scripts').createJsPath();
|
|
var scssFiles = require('sgmf-scripts').createScssPath();
|
|
|
|
var bootstrapPackages = {
|
|
Alert: 'exports-loader?Alert!bootstrap/js/src/alert',
|
|
// Button: 'exports-loader?Button!bootstrap/js/src/button',
|
|
Carousel: 'exports-loader?Carousel!bootstrap/js/src/carousel',
|
|
Collapse: 'exports-loader?Collapse!bootstrap/js/src/collapse',
|
|
// Dropdown: 'exports-loader?Dropdown!bootstrap/js/src/dropdown',
|
|
Modal: 'exports-loader?Modal!bootstrap/js/src/modal',
|
|
// Popover: 'exports-loader?Popover!bootstrap/js/src/popover',
|
|
Scrollspy: 'exports-loader?Scrollspy!bootstrap/js/src/scrollspy',
|
|
Tab: 'exports-loader?Tab!bootstrap/js/src/tab',
|
|
// Tooltip: 'exports-loader?Tooltip!bootstrap/js/src/tooltip',
|
|
Util: 'exports-loader?Util!bootstrap/js/src/util'
|
|
};
|
|
|
|
module.exports = [{
|
|
mode: 'production',
|
|
name: 'js',
|
|
entry: jsFiles,
|
|
output: {
|
|
path: path.resolve('./cartridges/app_storefront_base/cartridge/static'),
|
|
filename: '[name].js'
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /bootstrap(.)*\.js$/,
|
|
use: {
|
|
loader: 'babel-loader',
|
|
options: {
|
|
presets: ['@babel/env'],
|
|
plugins: ['@babel/plugin-proposal-object-rest-spread'],
|
|
cacheDirectory: true
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
plugins: [new webpack.ProvidePlugin(bootstrapPackages)]
|
|
}, {
|
|
mode: 'none',
|
|
name: 'scss',
|
|
entry: scssFiles,
|
|
output: {
|
|
path: path.resolve('./cartridges/app_storefront_base/cartridge/static'),
|
|
filename: '[name].css'
|
|
},
|
|
module: {
|
|
rules: [{
|
|
test: /\.scss$/,
|
|
use: ExtractTextPlugin.extract({
|
|
use: [{
|
|
loader: 'css-loader',
|
|
options: {
|
|
url: false,
|
|
minimize: true
|
|
}
|
|
}, {
|
|
loader: 'postcss-loader',
|
|
options: {
|
|
plugins: [
|
|
require('autoprefixer')()
|
|
]
|
|
}
|
|
}, {
|
|
loader: 'sass-loader',
|
|
options: {
|
|
includePaths: [
|
|
path.resolve('node_modules'),
|
|
path.resolve('node_modules/flag-icon-css/sass')
|
|
]
|
|
}
|
|
}]
|
|
})
|
|
}]
|
|
},
|
|
plugins: [
|
|
new ExtractTextPlugin({ filename: '[name].css' })
|
|
]
|
|
}];
|