Skip to content

Commit afdb0d1

Browse files
committed
chore: Update dependencies.
1 parent 277b074 commit afdb0d1

File tree

13 files changed

+5237
-17786
lines changed

13 files changed

+5237
-17786
lines changed

.babelrc

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
{
22
"presets": [
3-
["env", {
3+
["@babel/preset-env", {
44
"modules": false,
55
"targets": {
6-
"browsers": ["> 1%", "last 5 versions", "not ie <= 10"]
6+
"browsers": ["> 1%", "last 10 versions", "not ie <= 11"]
77
}
8-
}],
9-
"stage-2"
8+
}]
109
],
11-
"plugins": ["transform-runtime"],
10+
"plugins": ["@babel/plugin-transform-runtime"],
1211
"env": {
1312
"test": {
14-
"presets": ["env", "stage-2"],
13+
"presets": ["@babel/preset-env"],
1514
"plugins": ["istanbul"]
1615
}
1716
}

build/dev-server.js

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
require('./check-versions')()
22

33
const config = require('../config')
4+
45
if (!process.env.NODE_ENV) {
56
process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
67
}
78

8-
const opn = require('opn')
9+
const open = require('open')
910
const path = require('path')
11+
const chalk = require('chalk')
1012
const express = require('express')
1113
const webpack = require('webpack')
1214
const proxyMiddleware = require('http-proxy-middleware')
15+
const webpackDevMiddleware = require('webpack-dev-middleware');
16+
const webpackHotMiddleware = require('webpack-hot-middleware');
1317
const webpackConfig = (process.env.NODE_ENV === 'testing' || process.env.NODE_ENV === 'production')
1418
? require('./webpack.prod.conf')
1519
: require('./webpack.dev.conf')
@@ -23,17 +27,19 @@ const autoOpenBrowser = !!config.dev.autoOpenBrowser
2327
const proxyTable = config.dev.proxyTable
2428

2529
const app = express()
30+
2631
const compiler = webpack(webpackConfig)
2732

28-
const devMiddleware = require('webpack-dev-middleware')(compiler, {
33+
const wdmInstance = webpackDevMiddleware(compiler, {
2934
publicPath: webpackConfig.output.publicPath,
3035
quiet: true
3136
})
3237

33-
const hotMiddleware = require('webpack-hot-middleware')(compiler, {
38+
const hotMiddleware = webpackHotMiddleware(compiler, {
3439
log: false,
3540
heartbeat: 2000
3641
})
42+
3743
// force page reload when html-webpack-plugin template changes
3844
compiler.hooks.compilation.tap('html-webpack-plugin-after-emit', () => {
3945
hotMiddleware.publish({
@@ -42,7 +48,7 @@ compiler.hooks.compilation.tap('html-webpack-plugin-after-emit', () => {
4248
});
4349

4450
// proxy api requests
45-
Object.keys(proxyTable).forEach(function (context) {
51+
Object.keys(proxyTable).forEach((context) => {
4652
const options = proxyTable[context]
4753
if (typeof options === 'string') {
4854
options = { target: options }
@@ -54,7 +60,7 @@ Object.keys(proxyTable).forEach(function (context) {
5460
app.use(require('connect-history-api-fallback')())
5561

5662
// serve webpack bundle output
57-
app.use(devMiddleware)
63+
app.use(wdmInstance)
5864

5965
// enable hot-reload and state-preserving
6066
// compilation error display
@@ -64,28 +70,26 @@ app.use(hotMiddleware)
6470
const staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
6571
app.use(staticPath, express.static('./static'))
6672

67-
const uri = 'http://localhost:' + port
68-
69-
let _resolve
70-
const readyPromise = new Promise(resolve => {
71-
_resolve = resolve
72-
})
73-
74-
console.log('> Starting dev server...')
75-
devMiddleware.waitUntilValid(() => {
76-
console.log('> Listening at ' + uri + '\n')
77-
// when env is testing, don't need open it
78-
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
79-
opn(uri)
80-
}
81-
_resolve()
82-
})
83-
84-
const server = app.listen(port)
73+
module.exports = new Promise((resolve) => {
74+
console.log('> Starting dev server...')
75+
const server = app.listen(port, (err) => {
76+
if (err) {
77+
console.error(err);
78+
}
79+
80+
wdmInstance.waitUntilValid(() => {
81+
const uri = 'http://localhost:' + port
82+
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
83+
open(uri)
84+
console.log('> Listening at ' + uri + '\n')
85+
}
86+
})
87+
});
8588

86-
module.exports = {
87-
ready: readyPromise,
88-
close: () => {
89-
server.close()
90-
}
91-
}
89+
resolve({
90+
port,
91+
close: () => {
92+
server.close();
93+
},
94+
});
95+
});

build/utils.js

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
const path = require('path')
22
const config = require('../config')
3-
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
43

54
exports.assetsPath = function (_path) {
65
const assetsSubDirectory = process.env.NODE_ENV === 'production'
@@ -9,60 +8,3 @@ exports.assetsPath = function (_path) {
98
return path.posix.join(assetsSubDirectory, _path)
109
}
1110

12-
exports.cssLoaders = function (options) {
13-
options = options || {}
14-
15-
const cssLoader = {
16-
loader: 'css-loader',
17-
options: {
18-
minimize: process.env.NODE_ENV === 'production',
19-
sourceMap: options.sourceMap
20-
}
21-
}
22-
23-
// generate loader string to be used with extract text plugin
24-
function generateLoaders (loader, loaderOptions) {
25-
const loaders = [cssLoader]
26-
if (loader) {
27-
loaders.push({
28-
loader: loader + '-loader',
29-
options: Object.assign({}, loaderOptions, {
30-
sourceMap: options.sourceMap
31-
})
32-
})
33-
}
34-
35-
// Extract CSS when that option is specified
36-
// (which is the case during production build)
37-
if (options.extract) {
38-
return ['vue-style-loader'].concat([MiniCssExtractPlugin.loader].concat(loaders))
39-
} else {
40-
return ['vue-style-loader'].concat(loaders)
41-
}
42-
}
43-
44-
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
45-
return {
46-
css: generateLoaders(),
47-
postcss: generateLoaders(),
48-
less: generateLoaders('less'),
49-
sass: generateLoaders('sass', { indentedSyntax: true }),
50-
scss: generateLoaders('sass'),
51-
stylus: generateLoaders('stylus'),
52-
styl: generateLoaders('stylus')
53-
}
54-
}
55-
56-
// Generate loaders for standalone style files (outside of .vue)
57-
exports.styleLoaders = function (options) {
58-
const output = []
59-
const loaders = exports.cssLoaders(options)
60-
for (const extension in loaders) {
61-
const loader = loaders[extension]
62-
output.push({
63-
test: new RegExp('\\.' + extension + '$'),
64-
use: loader
65-
})
66-
}
67-
return output
68-
}

build/vue-loader.conf.js

Lines changed: 0 additions & 18 deletions
This file was deleted.

build/webpack.base.conf.js

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,33 @@
11
const path = require('path')
2+
const VueLoaderPlugin = require('vue-loader/lib/plugin')
3+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
24
const utils = require('./utils')
35
const config = require('../config')
4-
const vueLoaderConfig = require('./vue-loader.conf')
56

67
function resolve (dir) {
78
return path.join(__dirname, '..', dir)
89
}
910

11+
const isProd = process.env.NODE_ENV === 'production'
12+
13+
const styleLoader = isProd ? MiniCssExtractPlugin.loader : 'vue-style-loader';
14+
15+
const cssLoader = {
16+
loader: 'css-loader',
17+
options: {
18+
sourceMap: !isProd,
19+
esModule: false
20+
},
21+
};
22+
1023
module.exports = {
1124
entry: {
1225
app: './example/main.js'
1326
},
1427
output: {
1528
path: config.build.assetsRoot,
1629
filename: '[name].js',
17-
publicPath: process.env.NODE_ENV === 'production'
18-
? config.build.assetsPublicPath
19-
: config.dev.assetsPublicPath
30+
publicPath: isProd ? config.build.assetsPublicPath : config.dev.assetsPublicPath
2031
},
2132
resolve: {
2233
extensions: ['.js', '.vue', '.json'],
@@ -31,20 +42,19 @@ module.exports = {
3142
test: /\.(js|vue)$/,
3243
loader: 'eslint-loader',
3344
enforce: 'pre',
34-
include: [resolve('src'), resolve('test')],
45+
include: [resolve('src'), resolve('test'), resolve('test')],
3546
options: {
3647
formatter: require('eslint-friendly-formatter')
3748
}
3849
},
3950
{
4051
test: /\.vue$/,
4152
loader: 'vue-loader',
42-
options: vueLoaderConfig
4353
},
4454
{
4555
test: /\.js$/,
4656
loader: 'babel-loader',
47-
include: [resolve('src'), resolve('test')]
57+
include: [resolve('src'), resolve('test'), resolve('test')]
4858
},
4959
{
5060
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
@@ -55,21 +65,30 @@ module.exports = {
5565
}
5666
},
5767
{
58-
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
59-
loader: 'url-loader',
60-
options: {
61-
limit: 10000,
62-
name: utils.assetsPath('media/[name].[hash:7].[ext]')
63-
}
68+
test: /\.css$/,
69+
use: [
70+
styleLoader,
71+
cssLoader
72+
]
6473
},
6574
{
66-
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
67-
loader: 'url-loader',
68-
options: {
69-
limit: 10000,
70-
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
71-
}
75+
test: /\.less$/,
76+
use: [
77+
styleLoader,
78+
cssLoader,
79+
{
80+
loader: 'less-loader',
81+
options: {
82+
lessOptions: {
83+
javascriptEnabled: true,
84+
}
85+
},
86+
},
87+
]
7288
}
7389
]
74-
}
90+
},
91+
plugins: [
92+
new VueLoaderPlugin()
93+
]
7594
}

build/webpack.dev.conf.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const utils = require('./utils')
22
const webpack = require('webpack')
33
const config = require('../config')
4-
const merge = require('webpack-merge')
4+
const { merge } = require('webpack-merge')
55
const baseWebpackConfig = require('./webpack.base.conf')
66
const HtmlWebpackPlugin = require('html-webpack-plugin')
77
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
@@ -13,10 +13,7 @@ Object.keys(baseWebpackConfig.entry).forEach(function (name) {
1313

1414
module.exports = merge(baseWebpackConfig, {
1515
mode: 'development',
16-
module: {
17-
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
18-
},
19-
devtool: '#cheap-module-eval-source-map',
16+
devtool: 'eval-cheap-module-source-map',
2017
plugins: [
2118
new webpack.DefinePlugin({
2219
'process.env': config.dev.env

build/webpack.prod.conf.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const path = require('path')
22
const utils = require('./utils')
33
const webpack = require('webpack')
44
const config = require('../config')
5-
const merge = require('webpack-merge')
5+
const { merge } = require('webpack-merge')
66
const baseWebpackConfig = require('./webpack.base.conf')
77
const CopyWebpackPlugin = require('copy-webpack-plugin')
88
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
@@ -19,13 +19,7 @@ const env = process.env.NODE_ENV === 'testing'
1919

2020
const webpackConfig = merge(baseWebpackConfig, {
2121
mode: 'production',
22-
module: {
23-
rules: utils.styleLoaders({
24-
sourceMap: config.build.productionSourceMap,
25-
extract: true
26-
})
27-
},
28-
devtool: config.build.productionSourceMap ? '#source-map' : false,
22+
devtool: config.build.productionSourceMap ? 'source-map' : false,
2923
output: {
3024
path: config.build.assetsRoot,
3125
filename: utils.assetsPath('js/[name].[chunkhash].js'),
@@ -113,8 +107,6 @@ if (!isExampleEnv) {
113107
removeAttributeQuotes: true
114108
}
115109
}),
116-
// keep module.id stable when vender modules does not change
117-
new webpack.HashedModuleIdsPlugin(),
118110
// copy custom static assets
119111
new CopyWebpackPlugin({
120112
patterns: [

config/dev.env.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const merge = require('webpack-merge')
1+
const { merge } = require('webpack-merge')
22
const prodEnv = require('./prod.env')
33

44
module.exports = merge(prodEnv, {

config/test.env.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const merge = require('webpack-merge')
1+
const { merge } = require('webpack-merge')
22
const devEnv = require('./dev.env')
33

44
module.exports = merge(devEnv, {

0 commit comments

Comments
 (0)