Skip to content

Commit

Permalink
refactor: webpack vendor, postcss + fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
NGPixel committed Jan 27, 2018
1 parent 6227690 commit 1be3234
Show file tree
Hide file tree
Showing 8 changed files with 517 additions and 69 deletions.
15 changes: 1 addition & 14 deletions .babelrc
@@ -1,20 +1,7 @@
{
"comments": true,
"presets": [
["env", {
"targets": {
"browsers": [
"last 6 Chrome major versions",
"last 6 Firefox major versions",
"last 4 Safari major versions",
"last 4 Edge major versions",
"last 3 iOS major versions",
"last 3 Android major versions",
"last 2 ChromeAndroid major versions",
"Explorer 11"
]
}
}],
["env"],
"stage-2"
]
}
10 changes: 10 additions & 0 deletions dev/webpack/postcss.config.js
@@ -1,2 +1,12 @@
module.exports = {
plugins: {
'autoprefixer': {},
'cssnano': {
preset: ['default', {
discardComments: {
removeAll: true
}
}]
}
}
}
85 changes: 53 additions & 32 deletions dev/webpack/webpack.common.js
Expand Up @@ -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,
Expand Down Expand Up @@ -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
}
]
},
Expand All @@ -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',
Expand All @@ -80,31 +85,30 @@ 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: [
{
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',
Expand All @@ -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
}
}
}
]
}
}
},
Expand Down Expand Up @@ -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,
Expand Down
5 changes: 4 additions & 1 deletion dev/webpack/webpack.dev.js
@@ -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, {
Expand All @@ -10,7 +12,8 @@ module.exports = merge(common, {
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('development')
})
}),
new ExtractTextPlugin({ disable: true })
],
resolve: {}
})
4 changes: 3 additions & 1 deletion dev/webpack/webpack.prod.js
Expand Up @@ -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')

Expand All @@ -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')
]
})
11 changes: 9 additions & 2 deletions package.json
Expand Up @@ -9,9 +9,8 @@
"restart": "node wiki restart",
"build": "webpack --config dev/webpack/webpack.prod.js",
"build:analyze": "poi build --analyze",
"dev:client": "poi watch",
"dev:client": "webpack --config dev/webpack/webpack.dev.js",
"dev:server": "nodemon",
"dev:server:alt": "node-dev server --no-deps --respawn --no-notify",
"test": "eslint --ext .js,.vue . && jest"
},
"bin": {
Expand Down Expand Up @@ -157,6 +156,7 @@
"consolidate": "0.15.0",
"copy-webpack-plugin": "4.3.1",
"css-loader": "0.28.9",
"cssnano": "4.0.0-rc.2",
"eslint": "4.13.1",
"eslint-config-requarks": "1.0.7",
"eslint-config-standard": "11.0.0-beta.0",
Expand All @@ -176,6 +176,7 @@
"node-dev": "3.1.3",
"node-sass": "4.7.2",
"nodemon": "1.14.3",
"postcss-loader": "2.0.10",
"postcss-selector-parser": "3.1.1",
"progress-bar-webpack-plugin": "1.10.0",
"pug-lint": "2.5.0",
Expand Down Expand Up @@ -206,6 +207,12 @@
"webpack-merge": "4.1.1",
"whatwg-fetch": "2.0.3"
},
"browserslist": [
"> 1%",
"last 2 versions",
"Firefox ESR",
"not ie < 11"
],
"jest": {
"testResultsProcessor": "./node_modules/jest-junit",
"collectCoverage": false,
Expand Down
5 changes: 4 additions & 1 deletion server/views/master.pug
Expand Up @@ -21,7 +21,10 @@ html
script.
var siteConfig = !{JSON.stringify(config.site)}

//- JS / CSS
//- CSS
link(type='text/css', rel='stylesheet', href=config.site.path + 'css/bundle.css')

//- JS
script(type='text/javascript', src=config.site.path + 'js/manifest.js')
script(type='text/javascript', src=config.site.path + 'js/vendor.js')
script(type='text/javascript', src=config.site.path + 'js/client.js')
Expand Down

0 comments on commit 1be3234

Please sign in to comment.