const webpack = require('webpack')
const path = require('path')
// const CompressionWebpackPlugin = require('compression-webpack-plugin');
const productionGzipExtensions = ['js', 'css']
module.exports = {
// 基本路径
publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : './',
// 输出文件目录
outputDir: 'dist',
// eslint-loader 是否在保存的时候检查
pages: {
index: {
// page 的入口
entry: 'src/dyreleaseweb/main.js',
// 模板来源
template: 'public/index.html',
filename: 'index.html',
favicon: 'public/logo.ico',
// 当使用 title 选项时,
// template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
title: '通稿稿件2.0',
// 在这个页面中包含的块,默认情况下会包含
// 提取出来的通用 chunk 和 vendor chunk。
chunks: ['chunk-vendors', 'chunk-common', 'index']
},
topic: {
// page 的入口
entry: 'src/topic/main.js',
// 模板来源
template: 'public/topic.html',
// 在 dist/index.html 的输出
filename: 'topic.html',
favicon: 'public/logo.ico',
title: 'Topic Page',
chunks: ['chunk-vendors', 'chunk-common', 'index']
}
// 当使用只有入口的字符串格式时,
// 模板会被推导为 `public/subpage.html`
// 并且如果找不到的话,就回退到 `public/index.html`。
// 输出文件名会被推导为 `subpage.html`。
// subpage: 'src/subpage/main.js'
},
chainWebpack: () => {},
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'windows.jQuery': 'jquery'
})
]
},
productionSourceMap: true,
// css相关配置
css: {
// 是否使用css分离插件 ExtractTextPlugin
extract: true,
// 开启 CSS source maps?
sourceMap: false,
// css预设器配置项
loaderOptions: {
css: {
},
postcss: {
/* ident: 'postcss',
plugins: (loader) => [
require('postcss-import')({ root: loader.resourcePath }),
require('postcss-preset-env')(),
require('cssnano')()
] */
}
},
// 启用 CSS modules for all css / pre-processor files.
modules: true // 去掉文件名中的 .module
},
// use thread-loader for babel & TS in production build
// enabled by default if the machine has more than 1 cores
parallel: require('os').cpus().length > 1,
// webpack-dev-server 相关配置
devServer: {
open: process.platform === 'darwin',
host: '10.10.0.102',
port: 8066,
https: false,
hotOnly: false,
proxy: {
'/api': {
target: 'http://10.10.0.102:9010/',
ws: true,
changeOrigin: true,
pathRewrite: {
'^/api': '/gateway'
}
},
'/foo': {
target: '<other_url>'
}
},
before: app => {}
},
// 第三方插件配置
pluginOptions: {
// ...
}
// eslint-disable-next-line eol-last
}