解释打包后显示的信息

image.png

  • Hash他的值代表了本次打包的唯一的值 (但这里没有)
  • webpack版本
  • 耗时
  • asset:意思就是打包出的文件是 bundle.js
  • name: main是js文件对应的名字,也可以理解为入口文件的名字,然后打包index.js ->header->sidebar->content

重点讲一下

name为什么是main

:::info 在我们写入口文件entry的时候,其实真正的代码是这样的 :::

  1. // node.js的文件模块
  2. const path = require('path')
  3. module.exports = {
  4. // entry: './src/index.js' 这种是简写
  5. entry: {
  6. // 其实是这样的
  7. main: './src/index.js'
  8. },
  9. output: {
  10. filename: 'bundle.js',
  11. path: path.resolve(__dirname, 'dist')
  12. }
  13. }

环境

另外我们发现, 这里有个警告:在webpack配置的时候,没有指定打包的环境 虽然他的默认模式就是生产模式:production

image.png

我们可以设置两种环境: development 开发 production 生产

  1. // node.js的文件模块
  2. const path = require('path')
  3. module.exports = {
  4. mode: 'production',
  5. entry: {
  6. main: './src/index.js'
  7. },
  8. output: {
  9. filename: 'bundle.js',
  10. path: path.resolve(__dirname, 'dist')
  11. }
  12. }

没有任何报错
image.png
通过生产模式打包的代码会经过压缩
image.png

如果模式为开发模式,代码并不会被压缩

  1. // node.js的文件模块
  2. const path = require('path')
  3. module.exports = {
  4. mode: 'development',
  5. entry: {
  6. main: './src/index.js'
  7. },
  8. output: {
  9. filename: 'bundle.js',
  10. path: path.resolve(__dirname, 'dist')
  11. }
  12. }

image.png