webpack打包配置
发布日期:2021-06-27 14:32:47 浏览次数:4 分类:技术文章

本文共 3023 字,大约阅读时间需要 10 分钟。

webpack打包配置

构建 服务器端渲染 代码配置文件,webpack_serve.config.js

const path = require('path')const nodeExternals = require('webpack_node_externals')//const UglifyJSPlugin =require('webpack/lib/optimize/UglifyJsPlugin')  //JS压缩//const UglifyESPlugin = require('uglifyjs-webpack-plugin') //压缩ES6module.exports = {    entry: './main_server.js',    //为了不将node.js内置的模块打包进输出文件    target: 'node',    externals: [nodeExternals()],    output = {        //为了以CommonJs2规范导出渲染函数,已被采用node.js编写的服务器调用        LibraryTarget: 'commonjs2',        filename: 'bundle_server.js',        path: path.resolve(__dirname, './dist')    },    module: {        rules: [ //配置loader            {                test: /|.js$/,                include: [ //只命中这里面的文件                    path.resolve(__dirname, 'app')                ],                exclude: [ //忽略这里的文件                    path.resolve(__dirname, 'app/demo-files')                ],                use: [ //使用哪些loader,有先后次序,从后向前一次执行                    'style-loader',                    {                        loader: 'css-loader',                        options: { //向htlml-loader传递参数                        }                    }                ]            },        ],        noParse: [ //不用解析和处理的模块            /special-library\.js$/ //正则匹配        ],    },    plugins: [		// new UglifyJSPlugin({            //UglifyJSPlugin当前采用的是UglifyJS2,而不是老版本的UglifyJS1,2个版本配置有误差        // }),        new ParallelUglifyPlugin({            uglifyJS:{//                output:{                    //在UglifyJS删除没有用到的代码时,不输出警告                    warning:false,                    //最紧凑的输出,是否输出可读性强的代码,即会保留空格和制表符,默认为输出,                    //为了更好的效果,可以设为false                    beauty:false,                    //删除所有注释                    comments:false,                    //提取多次用到但没有定义成变量去引用的静态值                    reduce_vars:true,                },                compress:{                    //删除所有的'console'语句                    drop_console:true,                    //内嵌已定义但是只用到一次的变量                    collapse_vars:true                }            }        })    ],    //配置寻找模块的规则    resolve: {    },    //输出文件的性能检查配置    performance: {        hints: 'warning', //有性能问题时输出警告        hints: 'error', //有性能问题时输出错误        hints: false, //关闭性能检查        maxAssetSize: 200000, //最大文件大小(单位为bytes)        maxEntrypointSize: 400000, //最大入口文件的大小        assetFilter: function (assetFilename) { //过滤要检查的文件            return assetFilename.endsWith('.css') || assetFilename.endsWith('.js');        }    },    devtool: 'source-map',    stats: { //控制台输出日志        aseeets: true,        colors: true,        errors: true,        hash: true,    },    devServer: {        proxy: { //代理到后端服务接口        },        //...省略更多配置参数        compress: true, //是否开启Gzip压缩        watchOptions: { //监听模式选项            //不监听的文件或文件夹            ignored: /node_modules/,            //监听到变化后,等300ms后再执行,截流,            aggregateTime: 300,            //不停地询问系统指定的文件是否变化,默认每秒询问1000次            poll: 100,        }    }}

//更多详细配置可以参考:

深入浅出Webpack(吴浩麟)

转载地址:https://blog.csdn.net/weixin_43799793/article/details/104206314 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:如何通过css来画三角形(border属性)
下一篇:前端学习资源

发表评论

最新留言

很好
[***.229.124.182]2024年04月17日 17时29分04秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章