mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-23 22:25:12 +00:00
misc: cleanup webpack config
This commit is contained in:
parent
d5462ea65a
commit
765f560b8c
@ -9,19 +9,11 @@ import VueLoader from 'vue-loader'
|
|||||||
import { isUrl, urlJoin } from '../../common/utils'
|
import { isUrl, urlJoin } from '../../common/utils'
|
||||||
|
|
||||||
import customLoaders from './loaders'
|
import customLoaders from './loaders'
|
||||||
import createStyleLoader from './style-loader'
|
import createStyleLoader from './utils/style-loader'
|
||||||
import WarnFixPlugin from './plugins/warnfix'
|
import WarnFixPlugin from './plugins/warnfix'
|
||||||
import ProgressPlugin from './plugins/progress'
|
import ProgressPlugin from './plugins/progress'
|
||||||
import StatsPlugin from './plugins/stats'
|
import StatsPlugin from './plugins/stats'
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Webpack Shared Config
|
|
||||||
|
|
|
||||||
| This is the config which is extended by the server and client
|
|
||||||
| webpack config files
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
export default class WebpackBaseConfig {
|
export default class WebpackBaseConfig {
|
||||||
constructor(builder, options) {
|
constructor(builder, options) {
|
||||||
this.name = options.name
|
this.name = options.name
|
@ -1,25 +1,13 @@
|
|||||||
import path from 'path'
|
import path from 'path'
|
||||||
|
|
||||||
import webpack from 'webpack'
|
import webpack from 'webpack'
|
||||||
|
|
||||||
import HTMLPlugin from 'html-webpack-plugin'
|
import HTMLPlugin from 'html-webpack-plugin'
|
||||||
import BundleAnalyzer from 'webpack-bundle-analyzer'
|
import BundleAnalyzer from 'webpack-bundle-analyzer'
|
||||||
import MiniCssExtractPlugin from 'mini-css-extract-plugin'
|
import MiniCssExtractPlugin from 'mini-css-extract-plugin'
|
||||||
|
|
||||||
import Debug from 'debug'
|
import VueSSRClientPlugin from './plugins/vue/client'
|
||||||
import BaseConfig from './base.config'
|
import BaseConfig from './base.config'
|
||||||
|
|
||||||
// import VueSSRClientPlugin from 'vue-server-renderer/client-plugin'
|
|
||||||
import VueSSRClientPlugin from './plugins/vue/client'
|
|
||||||
|
|
||||||
const debug = Debug('nuxt:build')
|
|
||||||
debug.color = 2 // Force green color
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Webpack Client Config
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
export default class WebpackClientConfig extends BaseConfig {
|
export default class WebpackClientConfig extends BaseConfig {
|
||||||
constructor(builder) {
|
constructor(builder) {
|
||||||
super(builder, { name: 'client', isServer: false })
|
super(builder, { name: 'client', isServer: false })
|
||||||
@ -62,34 +50,25 @@ export default class WebpackClientConfig extends BaseConfig {
|
|||||||
)
|
)
|
||||||
|
|
||||||
if (this.options.dev) {
|
if (this.options.dev) {
|
||||||
// --------------------------------------
|
|
||||||
// Dev specific config
|
|
||||||
// --------------------------------------
|
|
||||||
|
|
||||||
// HMR
|
|
||||||
plugins.push(new webpack.HotModuleReplacementPlugin())
|
plugins.push(new webpack.HotModuleReplacementPlugin())
|
||||||
} else {
|
}
|
||||||
// --------------------------------------
|
|
||||||
// Production specific config
|
|
||||||
// --------------------------------------
|
|
||||||
|
|
||||||
// Chunks size limit
|
// Chunks size limit
|
||||||
// https://webpack.js.org/plugins/aggressive-splitting-plugin/
|
// https://webpack.js.org/plugins/aggressive-splitting-plugin/
|
||||||
if (this.options.build.maxChunkSize) {
|
if (!this.options.dev && this.options.build.maxChunkSize) {
|
||||||
plugins.push(
|
plugins.push(
|
||||||
new webpack.optimize.AggressiveSplittingPlugin({
|
new webpack.optimize.AggressiveSplittingPlugin({
|
||||||
minSize: this.options.build.maxChunkSize,
|
minSize: this.options.build.maxChunkSize,
|
||||||
maxSize: this.options.build.maxChunkSize
|
maxSize: this.options.build.maxChunkSize
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Webpack Bundle Analyzer
|
// Webpack Bundle Analyzer
|
||||||
if (this.options.build.analyze) {
|
if (!this.options.dev && this.options.build.analyze) {
|
||||||
plugins.push(
|
plugins.push(
|
||||||
new BundleAnalyzer.BundleAnalyzerPlugin(Object.assign({}, this.options.build.analyze))
|
new BundleAnalyzer.BundleAnalyzerPlugin(Object.assign({}, this.options.build.analyze))
|
||||||
)
|
)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// CSS extraction
|
// CSS extraction
|
||||||
@ -126,9 +105,6 @@ export default class WebpackClientConfig extends BaseConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------
|
|
||||||
// Dev specific config
|
|
||||||
// --------------------------------------
|
|
||||||
if (this.options.dev) {
|
if (this.options.dev) {
|
||||||
// Add HMR support
|
// Add HMR support
|
||||||
config.entry = [
|
config.entry = [
|
@ -5,15 +5,8 @@ import webpack from 'webpack'
|
|||||||
import nodeExternals from 'webpack-node-externals'
|
import nodeExternals from 'webpack-node-externals'
|
||||||
|
|
||||||
import BaseConfig from './base.config'
|
import BaseConfig from './base.config'
|
||||||
|
|
||||||
// import VueSSRServerPlugin from 'vue-server-renderer/server-plugin'
|
|
||||||
import VueSSRServerPlugin from './plugins/vue/server'
|
import VueSSRServerPlugin from './plugins/vue/server'
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Webpack Server Config
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
export default class WebpackServerConfig extends BaseConfig {
|
export default class WebpackServerConfig extends BaseConfig {
|
||||||
constructor(builder) {
|
constructor(builder) {
|
||||||
super(builder, { name: 'server', isServer: true })
|
super(builder, { name: 'server', isServer: true })
|
Loading…
Reference in New Issue
Block a user