UNPKG

olympus-r-17plugins

Version:

A plugin of Olympus for 17zuoye.

69 lines (63 loc) 2.33 kB
'use strict'; const webpack = require('webpack'); const webpackConfig = require('./webpack.config'); const config = require('./config'); const utils = require('./utils'); const merge = require('webpack-merge'); const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); const env = config.env || 'dev'; let serverConfig = {}; module.exports = async () => { switch (env) { case 'dev': try { let location = await utils.intervalPort('localhost', 8080); serverConfig = { mode: 'development', devtool: 'source-map', devServer: { historyApiFallback: true, hot: true, host: location.host, port: location.port, open: false, overlay: { warnings: false, errors: true, }, publicPath: '/', quiet: true, watchOptions: { poll: false, }, }, plugins: [ new webpack.HotModuleReplacementPlugin(), new webpack.NamedModulesPlugin(), new webpack.NoEmitOnErrorsPlugin(), new FriendlyErrorsPlugin({ compilationSuccessInfo: { messages: [`请访问: http://${ location.host }:${ location.port }`], }, }), ], }; } catch (err) { console.log(err.msg); } break; case 'test': // 测试环境使用开发配置 serverConfig = { mode: 'development', devtool: 'cheap', } break; default: // 发布环境使用发布配置 serverConfig = { mode: 'production', }; } return merge(webpackConfig, serverConfig); };