1. 程式人生 > 其它 >webpack學習---優化-- js檔案拆分(將合併的一個js分割成多個,並行載入)

webpack學習---優化-- js檔案拆分(將合併的一個js分割成多個,並行載入)

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('檔案載入失敗~');
                });