-
com/nimojs/gulp-book gulp 是基于 node 实现 Web 前端自动化开发的工具,利用它能够极大的提高开发效率。 在 Web 前端开发工作中有很多“重复工作”,比如压缩CSS/JS文件。而这些工作都是有规律的。找到这 些规律,并编写 gulp 配置代码,让 gulp 自动执行这些“重复工作”。 将规律转换为 gulp 代码 现有目录结构如下: └── js/ └── a a.js 规律 1. 找到 js/目录下的所有 .js 文件 2. 压缩这些 js 文件 3. 将压缩后的代码另存在 dist/js/ 目录下 编写 gulp 代码 // 压缩 JavaScript 文件 gulp.task('script', function() { // 1. 找到 gulp.src('js/*.js') // 2. 压缩 .pipe(uglify()) // 3. 另存 .pipe(gulp.dest('dist/js')); }); 代码执行结果 代码执行后文件结构 └── js/ │ └── a.js └── dist/ └── js/ └── a.js gulp 入门指南 - 1 - 本文档使用 看云 构建 a.js 压缩前 function demo
0 码力 |
36 页 |
275.87 KB
| 1 年前 3
-
}) + ] + } + } ] } ] } }; 浏览器器的分辨率 CSS 媒体查询实现响应式布局 缺陷:需要写多套适配样式代码 @media screen and (max-width: 980px) { .header { width: 900px; } } @media screen and ⻚页⾯面渲染时计算根元素的 font-size 值 ·可以使⽤用⼿手淘的lib-flexible库 ·https://github.com/amfe/lib-flexible 资源内联的意义 代码层⾯面: 请求层⾯面:减少 HTTP ⽹网络请求数 ·⻚页⾯面框架的初始化脚本 ·上报相关打点 · css 内联避免⻚页⾯面闪动 · ⼩小图⽚片或者字体内联 (url-loader) HTML map 定位到源代码 · 线上排查问题的时候可以将 sourcemap 上传到错误监控系统 · source map科普⽂文:http://www.ruanyifeng.com/blog/2013/01/javascript_source_map.html source map 关键字 source map: 产⽣生.map⽂文件 eval: 使⽤用eval包裹模块代码 cheap: 不不包含列列信息
0 码力 |
69 页 |
4.33 MB
| 1 年前 3
-
//生成 webpack loader 代码 "generate-plugin", //生成 webpack plugin 代码 "info” webpack-cli对配置文件和命令行参数进行转换最终生成配置选项参数 options Webpack 的本质 Webpack可以将其理解是一种基于事件流的编程范例,一系列的插件运行。 先看一段代码 class Compiler extends Tapable { // ... } class Compilation extends Tapable { // ... } 创建一个 新的 chunk,继续遍历依赖 4. 重复上面的过程,直至得到所有的 chunks 模块化:增强代码可读性和维护性 传统的网页开发转变成 Web Apps 开发 代码复杂度在逐步增高 部署时希望把代码优化成几个 HTTP 请求 分离的 JS文件/模块,便于后续代码的维护性 常见的几种模块化方式 CJS ES module AMD import * as largeNumber
0 码力 |
39 页 |
3.66 MB
| 1 年前 3
-
社区现有方案往往能解决其中一两个问题, 但没有一个方案能解决所有问题 Rspack 有哪些特性? ??? 快! performance is the best feature! Rspack 有哪些特性? ??? Rust 实现核心部分,充分利用并发和 LTO 优化 Rspack 有哪些特性? ???️ O(≈1) 增量 HMR,只编译修改的模块 Rspack 有哪些特性? ⚡️ Dev 启动耗时 Rspack 有哪些特性? Rspack? ??? Rust is faster than JavaScript • 优先使用内置功能 • SWC > babel-loader,Rspack 使用 SWC 编译 JavaScript 代码 • experiments.css > style-loader + css-loader,Rspack 使用 SWC 实 现了 experiments.css,默认开启 • Asset Modules 支持 Lazy Compilation 懒编译 5. 支持 Persistent Cache 持久缓存 6. 更多生产环境优化策略 7. 持续优化构建性能 感谢 ??? Rspack 的实现离不开以下项目 ??? 了解更多 • 官方文档 (rspack.dev) • GitHub (web-infra-dev/rspack) • 开发指南 (web-infra-dev.github
0 码力 |
29 页 |
4.51 MB
| 1 年前 3
-
08 基础篇:webpack 进阶⽤用法 03 核⼼心概念之 Entry Entry ⽤用来指定 webpack 的打包⼊入⼝口 理理解依赖图的含义 依赖图的⼊入⼝口是 entry 对于⾮非代码⽐比如图⽚片、字体依赖也会 不不断加⼊入到依赖图中 Entry 的⽤用法 module.exports = { entry: './path/to/my/entry/file.js' }; 单⼊入⼝口:entry /node_modules/, //监听到变化发生后会等300ms再去执行,默认300ms aggregateTimeout: 300, //判断文件是否发生变化是通过不停询问系统指定文件有没有变化实现的,默认每秒问1000次 poll: 1000 } } 热更更新:webpack-dev-server { "name": "hello-webpack", "version": "1.0.0" use: [{ loader: 'file-loader’, + options: { + name: 'img/[name][hash:8].[ext] ' + } }] } ] } }; 代码压缩 HTML 压缩 CSS 压缩 JS 压缩 view-source:https://now.qq.com/pcweb/index.html JS ⽂文件的压缩 内置了了 uglifyjs-webpack-plugin
0 码力 |
41 页 |
2.52 MB
| 1 年前 3
-
webpack 5 webpack 4 构建优化:Tree Shaking 优化-内部模块 Tree shaking 代码⽣成:⽀持⽣成 ES6 代码 webpack 4 之前只⽣成 ES5 的代码。 webpack 5 则现在既可以⽣成 ES5 ⼜可以⽣成 ES6/ES2015 代码。 两种设置⽅式:5 =< ecmaVersion <= 11 或 2009 =< ecmaVersion <= 2020 2020 开创性的特性:模块联邦 发明者:Zack Jackson 基本解释:使 ⼀个JavaScript 应⽤在运⾏过程中可以动态加载另⼀个应⽤的代码,并⽀持共享依赖(CDN)。不再需要 本地安装 npm 包。 • Remote:被依赖⽅,被 Host 消费的 webpack 构建 • Host:依赖⽅,消费其他 Remote 的 webpack 构建 一个应用可以是 Host,也可以是 源码加工成 JS 模块 updateStyle 会通过 CSS Style Shee API 后者 直接创建