chore(config): update webpack config and deps to work with 4.x

This commit is contained in:
Łukasz Mierzwa
2018-06-12 12:06:54 +02:00
parent a31d862d59
commit 441763fd24
3 changed files with 102 additions and 10 deletions
+83 -3
View File
@@ -9752,9 +9752,9 @@
}
},
"sass-loader": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.0.1.tgz",
"integrity": "sha512-MeVVJFejJELlAbA7jrRchi88PGP6U9yIfqyiG+bBC4a9s2PX+ulJB9h8bbEohtPBfZmlLhNZ0opQM9hovRXvlw==",
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.0.3.tgz",
"integrity": "sha512-iaSFtQcGo4SSgDw5Aes5p4VTrA5jCGSA7sGmhPIcOloBlgI1VktM2MUrk2IHHjbNagckXlPz+HWq1vAAPrcYxA==",
"dev": true,
"requires": {
"clone-deep": "2.0.2",
@@ -11065,6 +11065,86 @@
"dev": true,
"optional": true
},
"uglifyjs-webpack-plugin": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz",
"integrity": "sha512-hIQJ1yxAPhEA2yW/i7Fr+SXZVMp+VEI3d42RTHBgQd2yhp/1UdBcR3QEWPV5ahBxlqQDMEMTuTEvDHSFINfwSw==",
"dev": true,
"requires": {
"cacache": "10.0.4",
"find-cache-dir": "1.0.0",
"schema-utils": "0.4.5",
"serialize-javascript": "1.5.0",
"source-map": "0.6.1",
"uglify-es": "3.3.9",
"webpack-sources": "1.1.0",
"worker-farm": "1.6.0"
},
"dependencies": {
"ajv": {
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz",
"integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==",
"dev": true,
"requires": {
"fast-deep-equal": "2.0.1",
"fast-json-stable-stringify": "2.0.0",
"json-schema-traverse": "0.4.1",
"uri-js": "4.2.1"
}
},
"ajv-keywords": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
"integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
"dev": true
},
"commander": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
"integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
"dev": true
},
"fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
"schema-utils": {
"version": "0.4.5",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz",
"integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==",
"dev": true,
"requires": {
"ajv": "6.5.1",
"ajv-keywords": "3.2.0"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"uglify-es": {
"version": "3.3.9",
"resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
"integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
"dev": true,
"requires": {
"commander": "2.13.0",
"source-map": "0.6.1"
}
}
}
},
"underscore": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.0.tgz",
+2 -1
View File
@@ -71,8 +71,9 @@
"mock-xhr": "^0.1.0",
"node-sass": "^4.9.0",
"resolve-url-loader": "^2.3.0",
"sass-loader": "^7.0.1",
"sass-loader": "^7.0.3",
"style-loader": "^0.21.0",
"uglifyjs-webpack-plugin": "^1.2.5",
"url-loader": "^1.0.1",
"webpack": "^4.12.0",
"webpack-cli": "^3.0.3",
+17 -6
View File
@@ -2,6 +2,7 @@ const webpack = require("webpack");
const path = require("path");
const fs = require("fs");
const CleanWebpackPlugin = require("clean-webpack-plugin");
const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
var config = {
cache: true,
@@ -16,6 +17,22 @@ var config = {
publicPath: "static/dist/",
filename: "[name].[chunkhash].js"
},
optimization: {
splitChunks: {
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
name: "shared",
chunks: "all"
}
}
},
minimizer: [
new UglifyJsPlugin({
sourceMap: true
})
]
},
plugins: [
new webpack.PrefetchPlugin(path.join(__dirname, "assets/static/unsee.js")),
new webpack.PrefetchPlugin(path.join(__dirname, "assets/static/help.js")),
@@ -25,9 +42,6 @@ var config = {
}),
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
new CleanWebpackPlugin([ "assets/static/dist" ]),
new webpack.optimize.CommonsChunkPlugin({
name: "shared"
}),
// this will generate loader_${name}.html files that will have
// a <script/> line for loading hashed chunk
// inspited by https://github.com/webpack/webpack/issues/86
@@ -112,9 +126,6 @@ const isDev = (process.env.NODE_ENV === "test");
// enable production only plugins
if (!isDev) {
config.plugins.push(new webpack.optimize.UglifyJsPlugin({
sourceMap: true
}));
config.plugins.push(new webpack.LoaderOptionsPlugin({
minimize: true,
debug: false,