《玩转webpack》加餐:webpack5专题
⽬ 录 CONTENTS webpack 5 新特性解析 01 bundle 和 bundless 的差异 02 Vite 的构建原理 03 webpack 5 在 2020-10-10 正式发布 官方 changelog:https://webpack.js.org/blog/2020-10-10-webpack-5-release/ webpack 5 新特性概览 最低支持的 Node 版本:10.13.0 功能清除:清理弃⽤的能⼒ 所有在 webpack 4 里面被废弃的能力都被清除,因此需要确保 webpack4 没有打印警告。 require.includes 语法已被废弃 • 可以通过 Rule.parser.requireInclude 将⾏为改为允许、废弃或禁⽤。 webpack 5 webpack 4 之前的版本是:如果某个模块依赖 Node.js 里面 .com/webpack/node-libs-browser#readme ⻓期缓存:确定的模块 Id、chunk 和导出名称 在生产模式下,默认的 chunkIds: “deterministic”, moduleIds: “deterministic”。设置成 deterministic 时默认最小 3 位数字会被 使用 chunkIds moduleIds webpack 5 webpack0 码力 | 40 页 | 12.03 MB | 1 年前3MY STORY WITH WEBPACK
MY STORY WITH WEBPACK TOBIAS KOPPERS GITHUB: @sokra TWITTER: @wSokra THE STORY FOLLOWED BY “NOW” AND “THE FUTURE” 2008 • STUDIED COMPUTER SCIENCE • JAVA • DISCOVERED GOOGLE WEB TOOLKIT (GWT) 2012: WEBPACK • MY INITIAL IDEA WAS TO ADD THIS TO modules-webmake • BUT BECAUSE IT WAS A COMPLETELY NEW APPROACH: • I WAS ASKED TO RENAME THE PROJECT • sokra/modules-webpack • LATER webpack/webpack ALIGN WITH NODE.JS COMMONJS • ADDED AMD SUPPORT • IMPORTANT FEATURE FOR REQUIRE.JS MIGRATION • webpack-dev-middleware/server 2012: MULTI-THREADING • MULTI-THREADING • YES, THIS WAS ACTUALLY A FEATURE0 码力 | 55 页 | 8.90 MB | 1 年前3webpack wasm challenge
WEBPACK + WEBASSEMBLY W E B P A C K A N D T H E C H A L L E N G E O F W E B A S S E M B L Y INTRODUCTION WEBASSEMBLY AND ESM WEBASSEMBLY? • LOW-LEVEL BINARY FORMAT FOR CODE • TYPED (I8 – I64, F32 DEPENDENCIES ARE EVALUATED IN ORDER OF OCCURRENCE (IMPORTS) ADDING WASM TO WEBPACK THE STORY • SO WE WANT TO ADD WEBASSEMBLY SUPPORT TO WEBPACK. • HOW TO DO THAT? • LET’S START WITH AN PROTOTYPE AND FIND PROBLEMS THIS CAN COVER A PART OF THE IMPLEMENTATION COST GOALS • EASY TO USE • HIDE TECHNICAL DETAILS • WEBPACK DOESN’T CARE ABOUT HIGH-LEVEL LANGUAGE (C/C++, RUST) • PERFORMANT (PRIMARY RUNTIME, BUT ALSO BUILD)0 码力 | 39 页 | 6.70 MB | 1 年前3how webpack works
• Twitter: @wSokra • Github: @sokra Agenda • Walkthrough webpack • You should get a rough understanding of the implementation of webpack. • You should know where to look into when customizing. • We points for customization are highlighted. • Customization • You will learn how to write plugins for webpack. • We won’t list every possible customizable thing. Plugins class MyPlugin { apply(compiler) { unexpectedly. Walkthrough webpack • webpack is very object-orientated • Design is probably not perfect • We start our walkthrough from top down to bottom • Start: Invoking the CLI: webpack entry.js bundle.js0 码力 | 26 页 | 2.35 MB | 1 年前3webpack past present future
• • https://github.com/webpack/webpack.js.org • • • • • • • • • • • • • • • • • • • • • • • • • • https://npm-stat.com/charts.html?package=webpack https://ashleynolan.co. a web app optimizer a help for development support native web apps and optimize them minimize webpack- specific syntax or make it optional (hint) follow latest specs e. g. for HTML, CSS, JSON, WASM0 码力 | 28 页 | 6.00 MB | 1 年前3webpack 5 whats new
WEBPACK 5 – WHAT’S NEW • CORE MAJOR • • • • 2 • • • 3 • • 301KB • • • • “CRYPTO” CANNOT BE RESOLVED yarn add resolve alias 4 ? ??? ? • • • • • • 3A2B1C. • • LOGIN.JS • 2 (dev) [id].js (prod) [name].js webpack 4 import("./module"); 1.js 1.js 1.js import( /* webpackChunkName: "something" */ "./module"); 1.js 1.js something.js webpack 5 import("./module"); src_module_js • CODE FOR __webpack_require__.n IS ALWAYS IN THE RUNTIME CODE • MAYBE UNNEEDED RUNTIME CODE IN THE BUNDLE • RuntimeRequirements • • • • ONLY RUNTIME CODE THAT’S NEEDED __webpack_require__.n0 码力 | 46 页 | 15.88 MB | 1 年前3《玩转webpack》 第二章 基础篇: webpack 基础用法
玩转 webpack 腾讯IVWEB 程柳柳锋 扫码试看/订阅 《玩转 webpack》 基础篇:webpack 与构建发展简史 ⽬目 录 CONTENTS 01 基础篇:webpack 基础⽤用法 02 进阶篇:编写可维护的 webpack 构建配置 04 进阶篇:webpack 构建速度和体积优化策略略 05 原理理篇:通过源码掌握 webpack 打包原理理 06 原理理篇:编写 原理理篇:编写 Loader 和插件 07 实战篇:React 全家桶 和 webpack 开发商城项⽬目 08 基础篇:webpack 进阶⽤用法 03 核⼼心概念之 Entry Entry ⽤用来指定 webpack 的打包⼊入⼝口 理理解依赖图的含义 依赖图的⼊入⼝口是 entry 对于⾮非代码⽐比如图⽚片、字体依赖也会 不不断加⼊入到依赖图中 Entry 的⽤用法 module { entry: { app: './src/app.js', adminApp: './src/adminApp.js' } }; 核⼼心概念之 Output Output ⽤用来告诉 webpack 如何将编译后的⽂文件输出到磁盘 Output 的⽤用法:单⼊入⼝口配置 module.exports = { entry: './path/to/my/entry/file.js' output:0 码力 | 41 页 | 2.52 MB | 1 年前3《玩转webpack》 第三章 基础篇 Webpack 进阶用法
基础篇:webpack 与构建发展简史 ⽬目 录 CONTENTS 01 基础篇:webpack 基础⽤用法 02 进阶篇:编写可维护的 webpack 构建配置 04 进阶篇:webpack 构建速度和体积优化策略略 05 原理理篇:通过源码掌握 webpack 打包原理理 06 原理理篇:编写 Loader 和插件 07 实战篇:React 全家桶 和 webpack 开发商城项⽬目 开发商城项⽬目 08 基础篇:webpack 进阶⽤用法 03 ������� ����������� 当前构建时的问题 每次构建的时候不不会清理理⽬目录,造成构建的输出⽬目录 output ⽂文件越来越多 通过 npm scripts 清理理构建⽬目录 rm -rf ./dist && webpack rimraf ./dist && webpack ⾃自动清理理构建⽬目录 module __dirname + '/dist' }, plugins: [ + new CleanWebpackPlugin() }; 避免构建前每次都需要⼿手动删除 dist 使⽤用 clean-webpack-plugin ·默认会删除 output 指定的输出⽬目录 CSS3 的属性为什什么需要前缀? Trident(-ms) Geko(-moz) Webkit(-webkit) Presto(-o)0 码力 | 69 页 | 4.33 MB | 1 年前3Writing a Localization plugin for webpack 5
0 码力 | 4 页 | 1.31 MB | 1 年前3webpack 5 why breaking changes
WHY BREAKING CHANGES? • @sokra • @wSokra • WEBPACK • FULL-TIME CORE TEAM • YEAH WEBPACK 5 • • • BREAKING CHANGES • BREAK MY BUILD • INVEST TIME • WHY • WHY LARGEST BREAKING CHANGES • BONUS PLUGIN API SURFACE • LONG TERM GOALS • FEATURES • CLEANUP WORK • REFACTORING MODERNIZATION webpack.js.org/vote • • • BETTER PERFORMANCE • DISK • LONG TERM CACHING • • EASIER RELIABLE • •0 码力 | 43 页 | 8.58 MB | 1 年前3
共 118 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12