leiyanting

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 
 js文件拆分,将打包后多个js合并的一个js分割成多个,并行加载
        1. 多入口模式和splitChunks配合,可以将js拆分成多个,并且可以将node_modules中代码单独打包,公共的文件打包成单独一个chunk
        2. 单入口模式和splitChunks配合,可以将node_modules中代码单独打包
        3, 单入口模式和splitChunks加上在js中用import动态导入语法,能将某个文件单独打包,并且可以将node_modules中代码单独打包
复制代码
                const { resolve } = require('path');
                const HtmlWebpackPlugin = require('html-webpack-plugin');

                module.exports = {
                // 单入口
                // entry: './src/js/index.js',
               
                //多入口
                entry: {
                    index: './src/js/index.js',
                    test: './src/js/test.js'
                },
                output: {
                    // [name]:取文件名
                    filename: 'js/[name].[contenthash:10].js',
                    path: resolve(__dirname, 'build')
                },
                plugins: [
                    new HtmlWebpackPlugin({
                    template: './src/index.html',
                    minify: {
                        collapseWhitespace: true,
                        removeComments: true
                    }
                    })
                ],
                /*
                    1. 可以将node_modules中代码单独打包一个chunk最终输出
                    2. 自动分析多入口chunk中,有没有公共的文件。如果有会打包成单独一个chunk
                */
                optimization: {
                    splitChunks: {
                    chunks: 'all'
                    }
                },
                mode: 'production'
                };
复制代码

 



        index.js中分离js方式
复制代码
                /*
                通过js代码,让某个文件被单独打包成一个chunk
                import动态导入语法:能将某个文件单独打包

                webpackChunkName: 'test'  在js中给分离出去的js命名
                */
                import(/* webpackChunkName: 'test' */'./test')
                .then(({ mul, count }) => {
                    // 文件加载成功~
                    // eslint-disable-next-line
                    console.log(mul(2, 5));
                })
                .catch(() => {
                    // eslint-disable-next-line
                    console.log('文件加载失败~');
                });
复制代码

 

 

posted on   leiyanting  阅读(2125)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
 
点击右上角即可分享
微信分享提示