|
@@ -1,5 +1,6 @@
|
|
const webpack = require("webpack");
|
|
const webpack = require("webpack");
|
|
-const ExtractTextPlugin = require("extract-text-webpack-plugin");
|
|
|
|
|
|
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
|
|
+
|
|
const path = require("path");
|
|
const path = require("path");
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -31,8 +32,13 @@ const banner = `/**
|
|
* limitations under the License.
|
|
* limitations under the License.
|
|
*/`;
|
|
*/`;
|
|
|
|
|
|
-const vendorCSS = new ExtractTextPlugin("vendor.css");
|
|
|
|
-const projectCSS = new ExtractTextPlugin("styles.css");
|
|
|
|
|
|
+// const vendorCSS = new MiniCssExtractPlugin({
|
|
|
|
+// filename: "[name].css",
|
|
|
|
+// });
|
|
|
|
+// const projectCSS = new MiniCssExtractPlugin({
|
|
|
|
+// filename: "styles.css",
|
|
|
|
+// chunkFileName: "styles.css",
|
|
|
|
+// });
|
|
|
|
|
|
module.exports = {
|
|
module.exports = {
|
|
plugins: [
|
|
plugins: [
|
|
@@ -49,14 +55,36 @@ module.exports = {
|
|
new webpack.DefinePlugin({
|
|
new webpack.DefinePlugin({
|
|
"process.browser": "true"
|
|
"process.browser": "true"
|
|
}),
|
|
}),
|
|
- vendorCSS,
|
|
|
|
- projectCSS
|
|
|
|
|
|
+ new MiniCssExtractPlugin({
|
|
|
|
+ filename: "[name].css",
|
|
|
|
+ chunkFilename: "[id].css",
|
|
|
|
+ }),
|
|
],
|
|
],
|
|
resolve: {
|
|
resolve: {
|
|
alias: {
|
|
alias: {
|
|
jquery: "jquery/src/jquery"
|
|
jquery: "jquery/src/jquery"
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ // optimization: {
|
|
|
|
+ // splitChunks: {
|
|
|
|
+ // cacheGroups: {
|
|
|
|
+ // styles: {
|
|
|
|
+ // name: "styles",
|
|
|
|
+ // test: /\.css$/,
|
|
|
|
+ // // test: (module,c,entry = 'foo') => module.constructor.name === 'CssModule' && recursiveIssuer(m) === entry,
|
|
|
|
+
|
|
|
|
+ // chunks: "all",
|
|
|
|
+ // enforce: true
|
|
|
|
+ // },
|
|
|
|
+ // vendor: {
|
|
|
|
+ // name: "vendor",
|
|
|
|
+ // test: /\.scss$/,
|
|
|
|
+ // chunks: "all",
|
|
|
|
+ // enforce: true,
|
|
|
|
+ // },
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
module: {
|
|
module: {
|
|
rules: [
|
|
rules: [
|
|
{
|
|
{
|
|
@@ -80,21 +108,31 @@ module.exports = {
|
|
},
|
|
},
|
|
{
|
|
{
|
|
test: /\.css$/,
|
|
test: /\.css$/,
|
|
- use: projectCSS.extract({
|
|
|
|
- use: [
|
|
|
|
- { loader: "css-loader" },
|
|
|
|
- { loader: "postcss-loader" },
|
|
|
|
- ]
|
|
|
|
- })
|
|
|
|
|
|
+ use: [
|
|
|
|
+ MiniCssExtractPlugin.loader,
|
|
|
|
+ "css-loader",
|
|
|
|
+ "postcss-loader",
|
|
|
|
+ ]
|
|
|
|
+ // use: projectCSS.extract({
|
|
|
|
+ // use: [
|
|
|
|
+ // { loader: "css-loader" },
|
|
|
|
+ // { loader: "postcss-loader" },
|
|
|
|
+ // ]
|
|
|
|
+ // })
|
|
},
|
|
},
|
|
{
|
|
{
|
|
test: /\.scss$/,
|
|
test: /\.scss$/,
|
|
- use: vendorCSS.extract({
|
|
|
|
- use: [
|
|
|
|
- { loader: "css-loader" },
|
|
|
|
- { loader: "sass-loader" }
|
|
|
|
- ]
|
|
|
|
- })
|
|
|
|
|
|
+ use: [
|
|
|
|
+ MiniCssExtractPlugin.loader,
|
|
|
|
+ "css-loader",
|
|
|
|
+ "sass-loader",
|
|
|
|
+ ]
|
|
|
|
+ // use: vendorCSS.extract({
|
|
|
|
+ // use: [
|
|
|
|
+ // { loader: "css-loader" },
|
|
|
|
+ // { loader: "sass-loader" }
|
|
|
|
+ // ]
|
|
|
|
+ // })
|
|
},
|
|
},
|
|
{
|
|
{
|
|
test: /\.(ico|eot|ttf|woff|woff2)$/,
|
|
test: /\.(ico|eot|ttf|woff|woff2)$/,
|