模块化打包工具的特点

  • 新特性代码编译为环境支持的代码
  • 模块化Javascript打包
  • 支持不同类型的资源模块

webpack打包工具

配置文件:webpack.config.js

  1. {
  2. // 这是一个运行在node环境中的文件
  3. const path = require('path')
  4. module.exports = {
  5. mode: 'development', // 打包模式:production|development|none
  6. entry: './src/main.js', // 打包的入口文件,相对路径的时候,前面的./不能省略
  7. output: {
  8. filename: 'bundle.js', // 打包后的文件名
  9. path: path.join(__dirname, 'dest'), // 打包后文件的输出目录,必须为绝对路径
  10. publicPath: 'dest/' // 打包后的资源所在的目录,即服务器所伺服的静态资源目录。 ‘/’不能省略
  11. },
  12. module: {
  13. rules: [
  14. {
  15. test: /\.js$/,
  16. use: {
  17. loader: 'babel-loader', // 需要同时安装 babel-loader、@babel/core、@babel/preset-env
  18. options: {
  19. presets: ['@babel/preset-env']
  20. }
  21. }
  22. },
  23. {
  24. test: /\.css$/,
  25. use: [
  26. 'style-loader',
  27. 'css-loader'
  28. ]
  29. },
  30. {
  31. test: /\.png$/,
  32. use: {
  33. loader: 'url-loader',
  34. options: {
  35. limit: 10 * 1024 // 10kb 小于10kb会使用url-loader转换为data-urls,嵌入代码中;
  36. // 大于10kb的文件会自动调用file-loader加载器,单独提取存放,所以
  37. // file-loader还是需要安装的,虽然在配置文件中不用配置。
  38. }
  39. }
  40. },
  41. {
  42. test: /\.html$/,
  43. use: {
  44. loader: 'html-loader',
  45. options: ['img:src', 'a:href'] // html中的资源加载方式的支持属性
  46. }
  47. }
  48. ]
  49. }
  50. }
  51. }

常用加载器分类

  • 编译转换类
  • 文件操作类
  • 代码检查类