You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
321 lines
21 KiB
JavaScript
321 lines
21 KiB
JavaScript
'use strict'
|
|
const utils = require('./utils')
|
|
const webpack = require('webpack')
|
|
const config = require('../config')
|
|
const merge = require('webpack-merge')
|
|
const path = require('path')
|
|
const baseWebpackConfig = require('./webpack.base.conf')
|
|
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
|
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
|
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
|
|
const portfinder = require('portfinder')
|
|
|
|
const HOST = process.env.HOST
|
|
const PORT = process.env.PORT && Number(process.env.PORT)
|
|
|
|
const devWebpackConfig = merge(baseWebpackConfig, {
|
|
module: {
|
|
rules: utils.styleLoaders({
|
|
sourceMap: config.dev.cssSourceMap,
|
|
usePostCSS: true
|
|
})
|
|
},
|
|
// cheap-module-eval-source-map is faster for development
|
|
devtool: config.dev.devtool,
|
|
|
|
// these devServer options should be customized in /config/index.js
|
|
devServer: {
|
|
clientLogLevel: 'warning',
|
|
historyApiFallback: {
|
|
rewrites: [{
|
|
from: /.*/,
|
|
to: path.posix.join(config.dev.assetsPublicPath, 'index.html')
|
|
}, ],
|
|
},
|
|
// https:true,
|
|
hot: true,
|
|
contentBase: false, // since we use CopyWebpackPlugin.
|
|
compress: true,
|
|
host: HOST || config.dev.host,
|
|
port: PORT || config.dev.port,
|
|
open: config.dev.autoOpenBrowser,
|
|
overlay: config.dev.errorOverlay ?
|
|
{
|
|
warnings: false,
|
|
errors: true
|
|
} :
|
|
false,
|
|
publicPath: config.dev.assetsPublicPath,
|
|
proxy: config.dev.proxyTable,
|
|
quiet: true, // necessary for FriendlyErrorsPlugin
|
|
watchOptions: {
|
|
poll: config.dev.poll,
|
|
},
|
|
|
|
},
|
|
plugins: [
|
|
new webpack.DefinePlugin({
|
|
'process.env': require('../config/dev.env')
|
|
}),
|
|
new webpack.HotModuleReplacementPlugin(),
|
|
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
|
|
new webpack.NoEmitOnErrorsPlugin(),
|
|
// https://github.com/ampedandwired/html-webpack-plugin
|
|
new HtmlWebpackPlugin({
|
|
filename: 'index.html',
|
|
template: 'index.html',
|
|
inject: true
|
|
}),
|
|
// copy custom static assets
|
|
new CopyWebpackPlugin([{
|
|
from: path.resolve(__dirname, '../static'),
|
|
to: config.dev.assetsSubDirectory,
|
|
ignore: ['.*']
|
|
}])
|
|
]
|
|
})
|
|
|
|
module.exports = new Promise((resolve, reject) => {
|
|
portfinder.basePort = process.env.PORT || config.dev.port
|
|
portfinder.getPort((err, port) => {
|
|
if (err) {
|
|
reject(err)
|
|
} else {
|
|
// publish the new Port, necessary for e2e tests
|
|
process.env.PORT = port
|
|
// add port to devServer config
|
|
devWebpackConfig.devServer.port = port
|
|
|
|
// Add FriendlyErrorsPlugin
|
|
devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
|
|
compilationSuccessInfo: {
|
|
// messages: [
|
|
// `
|
|
// 鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎
|
|
// 鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎 鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎
|
|
// 鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎
|
|
// 鼎鼎鼎 鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎
|
|
// 鼎鼎鼎 鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎 鼎鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎 鼎鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎 鼎鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎 鼎鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎 鼎鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎 鼎鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎 鼎鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎 鼎鼎鼎 鼎鼎
|
|
// 鼎鼎鼎 鼎鼎鼎 鼎鼎鼎
|
|
// 鼎鼎鼎 鼎鼎鼎 鼎鼎鼎
|
|
// 鼎鼎鼎 鼎鼎鼎 鼎鼎鼎
|
|
// 鼎鼎鼎 鼎鼎鼎 鼎鼎鼎
|
|
// 鼎鼎鼎 鼎鼎鼎 鼎鼎鼎
|
|
// 鼎 鼎鼎鼎 鼎鼎鼎 鼎鼎鼎
|
|
// 鼎鼎鼎鼎鼎鼎 鼎鼎鼎 鼎鼎鼎
|
|
// 鼎鼎鼎鼎鼎 鼎鼎鼎 鼎鼎鼎
|
|
// 鼎鼎鼎鼎 鼎鼎鼎 鼎鼎鼎
|
|
// `,
|
|
// `Local: https://192.168.31.193:${port}`,
|
|
// `Network: http://${require('ip').address()}:${port}`,
|
|
// ],
|
|
|
|
/**
|
|
*
|
|
* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
|
|
* │Esc│ │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │ F9│F10│F11│F12│ │P/S│S L│P/B│ ┌┐ ┌┐ ┌┐
|
|
* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └┘ └┘ └┘
|
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
|
|
* │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ BacSp │ │Ins│Hom│PUp│ │N L│ / │ * │ - │
|
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
|
|
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ | \ │ │Del│End│PDn│ │ 7 │ 8 │ 9 │ │
|
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
|
|
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter │ │ 4 │ 5 │ 6 │ │
|
|
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤
|
|
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │
|
|
* ├─────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ E││
|
|
* │ Ctrl│ │Alt │ Space │ Alt│ │ │Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │←─┘│
|
|
* └─────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
|
|
*/
|
|
messages: [
|
|
`
|
|
~~~~~~~~~~~~~~~~#######~~~~~~~~~~~~~~~~~~~~~~~~
|
|
~~~~~~~~~~~~~~~#########~~~~~~~~~~~~~~~~~~~~~~~
|
|
~~~~~~~~~~~~~~############~~~~~~~~~~~~~~~~~~~~~
|
|
~~~~~~~~~~~~~~#############~~~~~~~~~~~~~~~~~~~~
|
|
~~~~~~~~~~~~~##~~###########~~~~~~~~~~~~~~~~~~~
|
|
~~~~~~~~~~~~###~~######~#####~~~~~~~~~~~~~~~~~~
|
|
~~~~~~~~~~~~###~#######~~~####~~~~~~~~~~~~~~~~~
|
|
~~~~~~~~~~~###~~##########~####~~~~~~~~~~~~~~~~
|
|
~~~~~~~~~~####~~###########~####~~~~~~~~~~~~~~~
|
|
~~~~~~~~#####~~~###########~~#####~~~~~~~~~~~~~
|
|
~~~~~~~######~~~###~########~~~#####~~~~~~~~~~~
|
|
~~~~~~~#####~~~###~~~########~~~######~~~~~~~~~
|
|
~~~~~~######~~~###~~###########~~~######~~~~~~~
|
|
~~~~~######~~~####~##############~~######~~~~~~
|
|
~~~~#######~~#####################~#######~~~~~
|
|
~~~~#######~~##############################~~~~
|
|
~~~#######~~######~#################~#######~~~
|
|
~~~#######~~######~######~#########~~~######~~~
|
|
~~~#######~~~~##~~######~~~######~~~~~######~~~
|
|
~~~#######~~~~~~~~######~~~~#####~~~~~#####~~~~
|
|
~~~~######~~~~~~~~#####~~~~~#####~~~~~####~~~~~
|
|
~~~~~#####~~~~~~~~####~~~~~~####~~~~~###~~~~~~
|
|
~~~~~~#####~~~~~~;###~~~~~~~####~~~~~#~~~~~~~~
|
|
~~~~~~~~##~~~~~~~####~~~~~~~####~~~~~~~~~~~~~
|
|
~~~~~~~~~#~~~~~~~####~~~~~~~####~~~~~~~~~~~~~
|
|
|
|
`,
|
|
|
|
`Local: http://192.168.31.35:${port}`,
|
|
`Network: http://${require('ip').address()}:${port}`,
|
|
],
|
|
// messages: [
|
|
// `
|
|
// MMMMM
|
|
// MMMMMM
|
|
// MMMMMMM
|
|
// MMMMMMMM .
|
|
// MMMMMMMMM
|
|
// HMMMMMMMMMM
|
|
// MMMMMMMMMMMM M
|
|
// MMMMMMMMMMMMM M
|
|
// MMMMMMMMMMMMM M
|
|
// MMMMMMMMMMMMM:
|
|
// oMMMMMMMMMMMMMM
|
|
// .MMMMMMMMMMMMMMo MMMMMMMMMMMMMMM M
|
|
// MMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMMMMMMMMMMMMMMMMMMM. oMMMMMMMMMMMMMMM.M
|
|
// MMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
// oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: H
|
|
// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM . MMM
|
|
// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M MMMMMM
|
|
// .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M MMMMMMMMMM
|
|
// MM. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M MMMMMMMMMMMM
|
|
// MM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM .MMMMMMMMMMMMMM
|
|
// MM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
// MM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
// .MMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
// HMMMMMMMMMMMMMMMMMMMMM.MMMMMMMMM.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMMMMMM MMM.oMMMMMMM..MMMMMMMMM:MMMMMMMMMMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMMMMM MM..MMMMMMM...MMMMMMM. MMMMMMMMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMMMMMM ..MMMMMM...MMMMMM ..MMMMMMMMMMMMMMMMMMM
|
|
// MMMMMMM:M.MMM.M.. MMMMM M..MMMMM...MMMMMMMMMMMMMMMMMM MMM
|
|
// MMMM. .M..MM.M...MMMMMM..MMMMM.. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM .
|
|
// MMMM..M....M.....:MMM .MMMMMM..MMMMMMM...MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
// MMM.M.. ...M......MM.MMMMM.......MHM.M .MMMMMMMMMMMMMMMMMMMMMMMMM
|
|
// MMMMMMMM..MM. . MMM.....MMMMMM.M.....M ..MM..M MMMMMMMMMMMMMMMMMMM
|
|
// .MMMMMHMM. ..MMMM. MMM............o..... . .MMMMMMMMMMMMMMM
|
|
// MMM. M... .........................M..:.MMMMMMMMMMMM
|
|
// oMMM............ .................M.M.MMMMMMMMM
|
|
// .....MM........................ . MMMMMM
|
|
// M.....M.....................o.MM.MMMMMMMM.
|
|
// M........................M.. ...MMMMMMMMMMMMMo
|
|
// :....MMM..............MMM..oMMMMMMM
|
|
// M...MMM.............MMMMMMM
|
|
// .............:MMMMMMMM
|
|
// M..... MMM.....M
|
|
// M M.............
|
|
// ................M
|
|
// ooM.................MM MoMMMMMoooM
|
|
// MMoooM......................MoooooooH..oMM
|
|
// MHooooMoM.....................MMooooooM........M
|
|
// oooooooMoooM......... o........MoooooooM............
|
|
// Mooooooooooo.......M.........Moooooooo:..............M
|
|
// MooMoooooooooM...M........:Mooooooooooo:..............M
|
|
// M..oooooooooooo .........Mooooooooooooooo..............M
|
|
// M...Mooo:oooooooo.M....ooooooooooooooooooo..M...........M
|
|
// ...oooooMoooooooM..Mooooooooooooo:oooooooM.M...........M.
|
|
// M...ooooooMoo:ooooMoooooooooooooHoooooooooH:M. ...........:
|
|
// M..MoooooooMoooooooooooooooooo:ooooooMooooMoM..............M
|
|
// M..ooooooooooMooooooooooooooHoooooooMooHooooM...............M
|
|
// ...ooooooooooooooooooo:MooooooooooooooMoMoooM................
|
|
// M...oooooooooooooooooooooooooooooooooooooMooMM................M
|
|
// ...MooooooooooooooooooooooooooooooooooooooooMo ................
|
|
// ...MooooooooooooooooooooooooooooooooooooooooM M................M
|
|
// M...ooooooooooooooooooooooooooooooooooooooooM ................M
|
|
// ...MoooooooooooooooooooooooooooooooooooooooMM .:...............
|
|
// .....MooooooooooooooooooooooooooooooooooooMoo .............M
|
|
// M...... ooooooooooooooooooooooooooooooooooooM M..............M
|
|
// M........MooooMMM MM MM MMMMMMMMMooooooooM M...............M
|
|
// .........HM M: MM :MMMMMM M M...............
|
|
// M..........M M MoM M M................M
|
|
// M.........:M MoH M M M MooooHoooMM. M M...............M
|
|
// M..........Moooo MMooM oooooMooooooooM M..............H
|
|
// M.........MooooM Mooo : ooooooMooooMoooM M........ . .o.M
|
|
// H.. .....ooooo oooo M MooooooooooooooM M... MMMMMMMMMMM
|
|
// MMMMMMMMMMooooM M oooo . ooooooMooooooooM .MMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMooooH : ooooH oooooooooooooooo MMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMoooo ooooM Moooooooooooooooo .MMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMoooo ooooM MooooooooooooooooM MMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMoooM ooooM ooooooooooooooooo MMMMMMMMMMM:M
|
|
// MMMMMMMMMMoooM MooooM oooooooooooMoooooo MH...........
|
|
// . ......Mooo. MooooM oooooooooooooooooo M............M
|
|
// M.M......oooo MooooM Moooooooooooooooooo: .........M.....
|
|
// M.M.....Moooo MooooM ooooooooooooooooooM .M............
|
|
// .......MooooH MooooM oooooooooMoooooooooo M..o...M..o....M
|
|
// .o....HMooooM MooooH MooooooooMooooooooooM .:M...M.......M
|
|
// M..M.....MoooM :oooo: .MooooooooHooMoooooooooM M M... ..oM.M
|
|
// M...M.:.Mooo. MMMMooooo oooooooooooMoooooooooooooM ....M. M
|
|
// M:M..o.Moooooooooooooo MooooooooooooooMooooooooooooM .Mo
|
|
// MooooooooooooooMooooooooooooMoMoooooooooooooo
|
|
// Mooooooooooooooo:ooooooooooooooooooooooooooooo
|
|
// ooooooooooooooooMooooooooooMoooooooooooooooooo
|
|
// ooooooooooooooooMoooooooooooMooooooooooooooooHo
|
|
// ooMooooooooooooooMoooooooooooooooooooooooooooMoM
|
|
// MooMoooooooooooooo.ooooooooooooooooooooooooooo:oM
|
|
// MoooooooooooooooooooooooooooooooooooooooooooooooM
|
|
// MoooMooooooooooooooMooooooooooooooooooooooooooooo.
|
|
// MoooMooooooooooooooMoooooooooooooooooooooooooMooooM
|
|
// MooooooooooooooooooMoooooooooooooooooooooooooMoooooM
|
|
// MooooMoooooooooooooMoooooooooooooooooooooooooMoHooooM
|
|
// ooooooMooooooooooooooooooooooooooooooooooooooooMoMoooM
|
|
// MooooooooooooooooooooMooooooooooooooooooooooooooMoooooH:
|
|
// MoooooooMooooooooooooMoooooooooooooooooooooooooooooHoooM
|
|
// MooooooooMoooooooooooMoooooooooooooooooooooooooMoooMooooM
|
|
// Moooooooooooooooooooooooooooooooooooooooooooooo.oooMooooo
|
|
// MoooooooooooooooooooooooooooooooooooooooooooooMoooooooooM
|
|
// MooooooooooooooooooooMoooooooooooooooooooooooooooooooooM
|
|
// MooooooooooooooooooooMHooooooooooooooooooooMoooo:ooooo
|
|
// MMooooooooooooooooooMoMHoooooooooooooooooooooooMooooo
|
|
// MMoooooooooooooooMMooo MMooooooooooooooooooooooooooM
|
|
// MMMoooooooooooooMooooo oooooooooooooooooooooMooooo
|
|
// MooMMoooooooooMoooMMoM ooooHooooooooooooooooMooooM
|
|
// MooooMooooooMooooMoooM MoooooMoooooooooooooMooooo
|
|
// ooooooMMooooooooMooooM MoooooooooMooooooooooooooM
|
|
// HooooooMoooooooMooooM HoooooooHooMooooooooooooo
|
|
// oooMoooooooooHoooM MoooooooooMoooooooooM
|
|
// HooooooooooooHM MooooooooMMoooooooM
|
|
// MMMMMMMMMMMMMM Moooooo:MooooHMM
|
|
// MMMMMMM: ... MMMMMMMMMMMMMM
|
|
// M............M MMMMMMMMM ....
|
|
// M.MM.......... M.............M
|
|
// M ..............MM M..............
|
|
// MMMMM............MMMM ..MMMMMMMM ....M
|
|
// MMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMM...M
|
|
// .MMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMM
|
|
// :MMMMMMMMMMMMMMMMMMH MMMMMMMMMMMMMMMMMMM
|
|
// By EBEN Jérôme MMMMMMMMMMMMMMMMMM
|
|
// MMMMMMMMMMMMMMM
|
|
// HMMMMMMMMee
|
|
|
|
// `,
|
|
|
|
// `Local: https://192.168.31.193:${port}`,
|
|
// `Network: http://${require('ip').address()}:${port}`,
|
|
// ],
|
|
|
|
},
|
|
onErrors: config.dev.notifyOnErrors ?
|
|
utils.createNotifierCallback() :
|
|
undefined
|
|
}))
|
|
|
|
resolve(devWebpackConfig)
|
|
}
|
|
})
|
|
})
|