1. 代码地址:https://gitee.com/q_yup/webpack-test
    2. webpack基本介绍

    webpack是一款打包工具。

    • 给JS准备的打包工具
    • 把很多模块打包成很少的静态文件 (JS、css)
    • 代码分割:加载项目时,只加载当前需要的一部分文件
    • loader概念:模块可以通过loader处理各种文件(vue、css、图片、json文件甚至是less文件)。如果是JS文件,不论是commonJS模块化方式、AMD模块化方式、UMD模块化方式写的都可以通过loader处理。
    • https://webpack.github.io
    • 插件系统(使用vue-loader)、模块热更新(利于项目调试开发)

    注:webpack特性已标注不一样的字体背景颜色。

    1. webpack安装和命令行
    • 打开命令行
    • 新建文件:mkdir webpack-test
    • 进入webpack-test文件夹,初始化npm init
    • 安装webpack,npm i webpack@1.13.2 —save-dev
    • 新建hello.js,并执行打包hello.js:

    执行命令是:webpack hello.js hello.build.js 格式为: webpack 打包js文件 打包之后生成文件
    需要注意的是,window10系统不能直接识别webpack指令需要配置到package.js文件中,才能被执行(全局安装webpack就可以直接在控制台执行)

    • 新建style.css,查看webpack对css文件的处理(webpack是不支持JS以外的文件打包的,如果需要处理css、vue等文件需要安装对应的loader) npm i css-loader@0.25.0 style-loader@0.13.1 —save-dev
    • css-loader!./style.css 这种写法的意思就是指定css文件的处理(打包)使用css-loader

      style-loader!css-loader!./style.css 会将处理后的css文件引入到html中
      微信截图_20220310104533.png
      微信截图_20220310110709.png

    • 处理单个css文件:require(‘style-loader!css-loader!./style.css’);

      批量处理在命令行执行:
      webpack hello.js hello.build.js —module-bind “css=style-loader!css-loader”
      注意:使用webpack的—module-bind 属性
      添加—watch文件更新时自动打包
      webpack hello.js hello.build.js —module-bind “css=style-loader!css-loader” —watch
      添加—progress查看打包过程
      webpack hello.js hello.build.js —module-bind “css=style-loader!css-loader” —progress
      添加—display-modules查看打包的模块
      webpack hello.js hello.build.js —module-bind “css=style-loader!css-loader” —progress —display-modules
      添加—display-reasons查看为什么打包这个模块的原因
      webpack hello.js hello.build.js —module-bind “css=style-loader!css-loader” —progress —display-modules —display-reasons

    完整版:
    webpack hello.js hello.build.js —module-bind “css=style-loader!css-loader” —progress —display-modules —display-reasons —watch

    1. PS D:\OpenSource\webpack-test> webpack
    2. webpack 1.13.2
    3. Usage: https://webpack.github.io/docs/cli.html
    4. Options:
    5. --help, -h, -?
    6. --config
    7. --context
    8. --entry
    9. --module-bind
    10. --module-bind-post
    11. --module-bind-pre
    12. --output-path
    13. --output-file
    14. --output-chunk-file
    15. --output-named-chunk-file
    16. --output-source-map-file
    17. --output-public-path
    18. --output-jsonp-function
    19. --output-pathinfo
    20. --output-library
    21. --output-library-target
    22. --records-input-path
    23. --records-output-path
    24. --records-path
    25. --define
    26. --target
    27. --cache [default: true]
    28. --watch, -w
    29. --watch which closes when stdin ends
    30. --watch-aggregate-timeout
    31. --watch-poll
    32. --hot
    33. --debug
    34. --devtool
    35. --progress
    36. --resolve-alias
    37. --resolve-loader-alias
    38. --optimize-max-chunks
    39. --optimize-min-chunk-size
    40. --optimize-minimize
    41. --optimize-occurence-order
    42. --optimize-dedupe
    43. --prefetch
    44. --provide
    45. --labeled-modules
    46. --plugin
    47. --bail
    48. --profile
    49. -d shortcut for --debug --devtool sourcemap --output-pathinfo
    50. -p shortcut for --optimize-minimize
    51. --json, -j
    52. --colors, -c
    53. --sort-modules-by
    54. --sort-chunks-by
    55. --sort-assets-by
    56. --hide-modules
    57. --display-exclude
    58. --display-modules
    59. --display-chunks
    60. --display-error-details
    61. --display-origins
    62. --display-cached
    63. --display-cached-assets
    64. --display-reasons, --verbose, -v
    65. Output filename not configured.
    66. PS D:\OpenSource\webpack-test>

    微信截图_20220310111704.png