webpack官方指南 知识点1:使用一个空的文件夹(webpack-demo),npm init生成package.json 不要使用脚手架vue-cli生成的vue项目
知识点2:使用npm中的-D,-S,-g分别是什么? -D 代表的是dev,在开发时使用的依赖,会加载到devDependency的依赖列表中 -S 代表的是保存,会下载到node_modules文件夹中 -g是全局使用 知识点3:npx和npm中的区别? 知识点4:npm语句的原理? 知识点5:webpack中的多入口写法 知识点6:使用HtmlWebpackPlugin来实现自动更新引入代码和引入的文件名。 当前引入文件名 更改输出文件名配置 自动更新打包后的文件名 知识点7:自动清除之前生成的老的打包文件( clean-webpack-plugin) 知识点8:Manifest和sourceMap(跟踪打包之前和之后的bundle的映射关系) 知识点9:代码修改时,自动更新 一:使用watch模式,观察代码是否发生变化,变化时自动编译。(缺点:需要手动刷新浏览器) 二:使用webpack-dev-serve本地启动一个简单的web服务器,实现实时重新加载。webpack-dev-server,在localhost:8080 下建立服务,将 dist 目录下的文件,作为可访问文件。如果修改和保存web服务下的源文件,web 服务器就会自动重新加载编译后的代码。(会自动刷新,在一瞬间有白屏) 三:模块热替换(HMR) 模块热替换(HMR - Hot Module Replacement)功能会在应用程序运行过程中替换、添加或删除模块,而无需重新加载整个页面。主要是通过以下几种方式,来显著加快开发速度:
webpack-dev-server是本地起一个服务,代码更新的时候进行重新打包和页面整体的刷新。而我们的模块热替换则不需要刷新页面就可以更新页面,更加的强大(比较完美的效果,无白屏,数据自动刷新)
知识点10:webpack3.x和webpack-dev-server3.x版本不兼容。需要把webpack-dev-serve的版本降低至2.x
知识点11:tree shaking是去除引入了,但未使用的代码。对于这种情况,打包时不进行导入。但是也要标记哪一些是无副作用可以移除的。将文件标记为无副作用(side-effect-free)
知识点12:polyfill这个词被经常看到,被解释为一个代码块。polyfill是为了抹平不同浏览器之间的差异的补丁代码块。所以polyfill是这类补丁代码块的统称。
知识点13:环境变量 给所有的依赖注入环境变量 src路径下的代码都可以访问到这个环境变量 知识点14:代码分离获取更小的bundle,更加bundle的优先级来进行加载的调度,合理的调度可以大大的影响加载时间。
知识点15:通过多入口,多输出的形式,分理出多个bundle,但是会存在依赖重复,所以可以使用插件把公共的依赖进行剥离。
知识点16:动态导入,就是使用promise,async这种方式进行请求,用import这种方式进行执行js函数请求导入。 知识点17:可视化分析模块工具 知识点18:懒加载操作 知识点19:在输出的文件名中加入hash值,确保文件被替换是被第一时间知道,而不是使用缓存的资源。(解决缓存中的替换更新问题)
知识点20:将第三方的库进行提取出来生成一个bundle 知识点21:shimming(我们的ewebpack是希望依赖模块化,如果我们引入例如JQury这种第三方库。那么$全局变量就会贯穿整个项目,这是违背我们webpack规则的)。所以,我们有插件 ProvidePlugin来提供我们的库的。通过webpack配置,提供这些全局变量。
后面的就是扩展内容了,之后有能力再进行研究。