const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const WebpackMerge = require('webpack-merge'); const baseConfig = require('./webpack.base.js'); module.exports = WebpackMerge.merge(baseConfig, { mode: 'development', //开发环境下默认启用cache,在内存中对已经构建的部分进行缓存 //避免其他模块修改,但是该模块未修改时候,重新构建,能够更快的进行增量构建 //属于空间换时间的做法 cache: true, // 代码入口 entry: { // 注册界面 main: './src/main.js', }, output: { path: path.resolve(__dirname, '../dist'), publicPath: '/', filename: 'app-client-[name].js', chunkFilename: 'app-client-chunk-[name].js', }, watchOptions: { ignored: ['**/node_modules', '/bat/', '/dist/', '/public/', '/static/', '/test/'], poll: 2000, }, devServer: { port: 8083, compress: false, static: [ { directory: path.join(__dirname, 'client-base-v3/static'), publicPath: '/static', }, { directory: path.join(__dirname, 'client-base-v3/public'), publicPath: '/', }, ], // historyApiFallback: true, // historyApiFallback: { // rewrites: [ // { from: /.*/, to: path.posix.join('/', 'index.html') }, // ], // }, headers: { 'Access-Control-Allow-Origin': '*', // eslint-disable-next-line max-len //'Content-Security-Policy': 'upgrade-insecure-requests; default-src \'none\'; base-uri \'self\'; frame-ancestors \'none\'; script-src \'self\' \'nonce-11111\'; connect-src \'self\'; form-action \'self\'; frame-src \'self\'; img-src \'self\'; font-src \'self\'; style-src \'self\' \'nonce-11111\'; manifest-src \'none\'; worker-src \'self\'; media-src \'self\'; object-src \'self\';', }, proxy: { '/api': { target: 'https://a.leanwo.com:11022/', ws: false, changeOrigin: true, secure:true, }, '/static': { target: 'https://a.leanwo.com:11022/', ws: false, changeOrigin: true, secure:true, }, '/dashboard': { target: 'https://a.leanwo.com:11022/', ws: false, changeOrigin: true, secure:true, }, '/mock': { target: 'https://a.leanwo.com:11022/', ws: false, changeOrigin: true, secure:true, }, '/authApi': { target: 'https://a.leanwo.com:11022/', ws: false, changeOrigin: true, secure:true, }, '/Dictionary': { target: 'https://a.leanwo.com:11022/', ws: false, changeOrigin: true, secure:true, }, '/Files': { target: 'https://a.leanwo.com:11022/', ws: false, changeOrigin: true, secure:true, }, '/WebSocket': { target: 'https://a.leanwo.com:11022/', ws: true, changeOrigin: true, }, '/TrainVideo': { target: 'https://a.leanwo.com:11022/', ws: true, changeOrigin: true, }, '/gateway-api': { target: 'https://a.leanwo.com:11022/', ws: true, changeOrigin: true, secure:true, }, }, }, devtool: 'source-map', plugins: (module.exports.plugins || []).concat([ new HtmlWebpackPlugin({ title: 'Prodog', template: './public/index.html', // 源模板文件 filename: './index.html', // 输出文件【注意:这里的根路径是module.exports.output.path】 chunks: ['main'], }), ]), });