refactor: webpack vendor, postcss + fixes
This commit is contained in:
@@ -1,2 +1,12 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
'autoprefixer': {},
|
||||
'cssnano': {
|
||||
preset: ['default', {
|
||||
discardComments: {
|
||||
removeAll: true
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -7,9 +7,16 @@ const ProgressBarPlugin = require('progress-bar-webpack-plugin')
|
||||
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||
|
||||
const babelConfig = fs.readJsonSync(path.join(process.cwd(), '.babelrc'))
|
||||
const postCSSConfig = {
|
||||
config: {
|
||||
path: path.join(process.cwd(), 'dev/webpack/postcss.config.js')
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
entry: './client/index.js',
|
||||
entry: {
|
||||
client: './client/index.js'
|
||||
},
|
||||
output: {
|
||||
path: path.join(process.cwd(), 'assets'),
|
||||
pathinfo: true,
|
||||
@@ -45,12 +52,11 @@ module.exports = {
|
||||
loader: 'style-loader'
|
||||
},
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
autoprefixer: false,
|
||||
sourceMap: false,
|
||||
minimize: true
|
||||
}
|
||||
loader: 'css-loader'
|
||||
},
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: postCSSConfig
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,12 +66,11 @@ module.exports = {
|
||||
fallback: 'style-loader',
|
||||
use: [
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
autoprefixer: false,
|
||||
sourceMap: false,
|
||||
minimize: true
|
||||
}
|
||||
loader: 'css-loader'
|
||||
},
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: postCSSConfig
|
||||
},
|
||||
{
|
||||
loader: 'sass-loader',
|
||||
@@ -80,18 +85,18 @@ module.exports = {
|
||||
test: /\.vue$/,
|
||||
loader: 'vue-loader',
|
||||
options: {
|
||||
extractCSS: true,
|
||||
loaders: {
|
||||
css: [
|
||||
{
|
||||
loader: 'vue-style-loader'
|
||||
},
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
autoprefixer: false,
|
||||
sourceMap: false,
|
||||
minimize: true
|
||||
}
|
||||
loader: 'css-loader'
|
||||
},
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: postCSSConfig
|
||||
}
|
||||
],
|
||||
scss: [
|
||||
@@ -99,12 +104,11 @@ module.exports = {
|
||||
loader: 'vue-style-loader'
|
||||
},
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
autoprefixer: false,
|
||||
sourceMap: false,
|
||||
minimize: true
|
||||
}
|
||||
loader: 'css-loader'
|
||||
},
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: postCSSConfig
|
||||
},
|
||||
{
|
||||
loader: 'sass-loader',
|
||||
@@ -119,13 +123,21 @@ module.exports = {
|
||||
}
|
||||
}
|
||||
],
|
||||
js: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
babelrc: path.join(process.cwd(), '.babelrc'),
|
||||
cacheDirectory: true
|
||||
js: [
|
||||
{
|
||||
loader: 'cache-loader',
|
||||
options: {
|
||||
cacheDirectory: '.webpack-cache'
|
||||
}
|
||||
},
|
||||
{
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
babelrc: path.join(process.cwd(), '.babelrc'),
|
||||
cacheDirectory: true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -180,7 +192,16 @@ module.exports = {
|
||||
], {
|
||||
|
||||
}),
|
||||
new ExtractTextPlugin('css/bundle.css')
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'vendor',
|
||||
minChunks(module) {
|
||||
return module.context && module.context.includes('node_modules')
|
||||
}
|
||||
}),
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'manifest',
|
||||
minChunks: Infinity
|
||||
})
|
||||
],
|
||||
resolve: {
|
||||
symlinks: true,
|
||||
|
@@ -1,6 +1,8 @@
|
||||
const webpack = require('webpack')
|
||||
const merge = require('webpack-merge')
|
||||
|
||||
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||
|
||||
const common = require('./webpack.common.js')
|
||||
|
||||
module.exports = merge(common, {
|
||||
@@ -10,7 +12,8 @@ module.exports = merge(common, {
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env.NODE_ENV': JSON.stringify('development')
|
||||
})
|
||||
}),
|
||||
new ExtractTextPlugin({ disable: true })
|
||||
],
|
||||
resolve: {}
|
||||
})
|
||||
|
@@ -3,6 +3,7 @@ const merge = require('webpack-merge')
|
||||
|
||||
const CleanWebpackPlugin = require('clean-webpack-plugin')
|
||||
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
|
||||
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||
|
||||
const common = require('./webpack.common.js')
|
||||
|
||||
@@ -17,6 +18,7 @@ module.exports = merge(common, {
|
||||
new UglifyJSPlugin(),
|
||||
new webpack.DefinePlugin({
|
||||
'process.env.NODE_ENV': JSON.stringify('production')
|
||||
})
|
||||
}),
|
||||
new ExtractTextPlugin('css/bundle.css')
|
||||
]
|
||||
})
|
||||
|
Reference in New Issue
Block a user