123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- if(process.env.NODE_ENV === "production"){
- const Templates = process.UNI_SCRIPT_DEFINE;
-
- const path = require('path');
- const webpack = require('webpack')
-
- const CompressionWebpackPlugin = require("compression-webpack-plugin")
- const productionGzipExtensions = ['js', 'css']
-
- function resolve(dir) {
- return path.join(__dirname, dir)
- }
-
- const Timestamp = new Date().getTime();
- module.exports = {
- publicPath: './',
- outputDir: 'dist/' ,
- assetsDir: 'static',
- lintOnSave: false,
- devServer: {
- host: 'xpgj.xiaoxinda.com',
- port: 80,
- //解析缓存
- disableHostCheck: true,
- //支持gzip
- compress: true,
- },
- //不输出map
- productionSourceMap: false,
- chainWebpack: (config) => {
- config.entry.app = ['babel-polyfill', './src/main.js']
- config.resolve.alias
- .set('@', resolve('./static/'))
-
- config.plugins.delete('preload-index');
- config.plugins.delete('prefetch-index');
-
- config.module.rule('images')
- .test(/\.(png|jpe?g|gif|webp)(\?.*)?$/)
- .use('url-loader')
- .loader('file-loader')
- .options({
- name: 'static/img/[name].[hash:8].[ext]'
- })
-
- config.optimization.minimize(true);
- },
- configureWebpack: config => {
- /* //开启gzip压缩,需要配置Nginx服务器gzip选项开启
- config.plugins.push(
- new CompressionWebpackPlugin({
- filename: '[path].gz[query]',
- algorithm: 'gzip',
- test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
- threshold: 10240,
- minRatio: 0.8
- })
- ); */
-
- config.plugins.push(new webpack.ProgressPlugin(percentage => {
-
-
- var NODE_NAME_T="";
- if(Templates){
- NODE_NAME_T=Templates['NODE_NAME_T']
- }
- percentage === 1 ? console.log('编译完成:100.00%') : console.log(`编译${NODE_NAME_T}进度:${(percentage * 100).toFixed(2)}%,提示!构建请点击‘发行’-‘自定义发行’`)
- }));
- config.output.filename = `./static/js/[name].${Timestamp}.js`
- config.output.chunkFilename = `./static/js/[name].${Timestamp}.js`
-
- config.performance = {
- hints: 'warning',
- //入口起点的最大体积 整数类型(以字节为单位)
- maxEntrypointSize: 50000000,
- //生成文件的最大体积 整数类型(以字节为单位 300k)
- maxAssetSize: 30000000,
- //只给出 js 文件的性能提示
- assetFilter: function(assetFilename) {
- return assetFilename.endsWith('.js');
- }
- }
- },
- css: {
- extract: {
- filename: `./static/css/[name].${Timestamp}.css`,
- chunkFilename: `./static/css/[name].${Timestamp}.css`
- },
- sourceMap: false,
- loaderOptions: {
- // 给 sass-loader 传递选项
- sass: {
- // @/ 是 src/ 的别名
- // prependData: `@import "@/assets/scss/base.scss";`
- }
- }
- }
- };
-
- }
|