Hello, Boswell!
  • 什么是模块

在模块打包器中,每种资源,vue文件,js文件,html文件等都是模块,根据不同文件类型加载器进行处理,打包成js模块

  • *.vue文件,.js文件,在进行import M from '.vue/.js文件名' 时,名字相同的导致模块查找失败;这样就会导致打包失败;

对于不同模块的处理:

  • commonjs:

    • module.exports = function: _commonjs2__WEBPACK_IMPORTED_MODULE_4___default()(2, 1)
    • exports.fn = function: (0,_commonjs1__WEBPACK_IMPORTED_MODULE_3__.reduce)(2, 1)
  • esm:

    • export function: (0,_esm__WEBPACK_IMPORTED_MODULE_5__.esmAdd)('ss')
    • export default function: (0,_esm__WEBPACK_IMPORTED_MODULE_5__.default)(2, 3)

什么是模块

  • 模块化编程中,开发者将程序分解为功能离散的chunk,并称之为模块;

  • 每个模块都拥有小于完整程序的体积,验证,测试,调试变得轻松;

  • 可靠的抽象和封装界限,模块,具备了条理清晰的设计和明确的目的;

何为webpack模块

  • 任何加载能够被加载进来的资源,都可以是webpack的模块

  • es2015 import

  • commonjs require()

  • ADM define require

  • css/less/sass 文件的 @import

  • stylesheet 属性 url(), html 属性 src

支持的模块类型

  • 通过loader可以使得webpack支持多种语言和预处理器

模块加载流程

  • todo...

模块热替换

  • 在应用程序运行过程中,替换,添加,删除模块;

在应用程序中

  • todo...

在compiler中

  • todo...

在模块中

  • todo...

在runtime中

  • todo...
Last Updated:
Contributors: Boswell, Boswell, mingzhuang.ji