摘要:
今天,有个同学问我一个问题: add(1) //1 add(1)(2) //3 add(1)(2)(3) //返回6 .... 我想了半天,实在想不出来,在我看来, 这是矛盾的, 因为通过add(1)(2)返回3,要求add(1)的返回值是一个函数,才能接收参数2,但是add(1)却是1,不管是字符 阅读全文
摘要:
webpack做的事情, 仅仅是分析各个模块间的依赖关系, 将chunk里的资源合并成资源列表, 然后输出打包文件; 更多的事情, 需要loader和plugin来完成; plugin的用法, 通过npm来找用法 1. clean-webpack-plugin: 每次打包前清除配置文件中的输出包. 阅读全文
摘要:
一. 经过我实践证明: webpack的配置最好采用以下: 配置文件返回一个函数, 而该函数满足以下两个条件: 包含一个参数, 该参数作为命令行参数的传递对象, 能够为不同配置灵活配置; 并且返回一个配置对象; 运行: npx webpack --env prod 则会是生成环境, 运行: npx 阅读全文
摘要:
loader和plugin的区别: loader是转换代码的, 从一种代码(less, 图片)转成另一种代码(css, src的base64格式); plugin: 注册编译器的各种事件,干预webpack的编译过程. 当一些操作要嵌入到webpack的编译流程中,而这些操作不涉及到代码转换, (w 阅读全文
摘要:
一. webpack模块中的require发生的事情: webpack模块中的require("xx");与nodejs里的require是不一样的. webpack会在读取后进行loader转换, 再进行抽象语法数分析, 比如require("src/assets/index.css") ; we 阅读全文
摘要:
webpack做的事情, 仅仅是分析各个模块间的依赖关系, 将chunk里的资源合并成资源列表, 然后输出打包文件; 更多的事情, 需要loader和plugin来完成; 一. loader 本质是一个函数, 它的作用是将某个源码字符串转换成为另一个源码字符串. loaders执行过程:在webpa 阅读全文
摘要:
一. 路径前提知识: node中的./表示: 在模块化代码中, 表示当前js文件的目录; 在路径处理中, 表示node运行目录;webpack打包时,是指webpack.config.js所在的目录 __dirname:当前js文件所在的目录, 是绝对路径; path.resolve("./","x 阅读全文
摘要:
一: webpack编译过程分为初始化, 编译和输出三个阶段. 二: 初始化: 整理配置, 形成最终配置对象 1.命令行中的配置参数的权重最高, 因为最晚确定的. 命令中配置参数用: --xx=yy表示 比如 npx webpack --mode=development --devtool=eval 阅读全文
摘要:
一 以devtool是source-map的情况下, webpack打包的结果, 即经过webpack打包后生成的文件: 1. webpack打包的最终结果, 是一个合并了所有模块的js文件. 2. 该文件为了防止变量污染全局, 整体是一个立即执行函数. 3.定义了一个__webpack_modul 阅读全文