方式一

// 多入口:有一个入口,最终输出就有一个bundle

  1. 使用多个入口
  2. entry: {
  3. index:"./src/index.js",
  4. test:"./src/test.js"
  5. },
  6. output: {
  7. filename: "bundle[name].[contenthash:10].js",
  8. path: resolve(__dirname, "dist"),
  9. },

方式二

  1. 可以将node_modules中代码单独打包一个chunk最终输出

  2. 自动分析多入口chunk中,有没有公共的文件。如果有会打包成单独一个chunk

  1. //配置
  2. optimization: {
  3. splitChunks: {
  4. chunks: 'all'
  5. }
  6. },

方式三

  1. 可以将node_modules中代码单独打包一个chunk最终输出
    1. 自动分析多入口chunk中,有没有公共的文件。如果有会打包成单独一个chunk

使用:

  1. webpack.config.js
  2. //配置
  3. optimization: {
  4. splitChunks: {
  5. chunks: 'all'
  6. }
  7. },

image.png
在js代码中

index.js中引入test.js

  1. /*
  2. 通过js代码,让某个文件被单独打包成一个chunk
  3. import动态导入语法:能将某个文件单独打包
  4. */
  5. import(/* webpackChunkName: 'test' */'./test')
  6. .then(({ mul, count }) => {
  7. // 文件加载成功~
  8. // eslint-disable-next-line
  9. console.log(mul(2, 5));
  10. })
  11. .catch(() => {
  12. // eslint-disable-next-line
  13. console.log('文件加载失败~');
  14. });