2019-08 下旬 ✅
- 创建于:2019-08-21
- 更新于:2020-03-25
# 2019-08-31: null 和 undefined 的区别 ✅
好好想想先 😌
参考链接
一句话
Number(null) // 0 Number(undefined) // NaN
# 2019-08-30: 什么是 SSE ? 如何实现 ? 和 WebSocket 有什么区别 ? ✅
好好想想先 😌
参考链接
一句话
- TODO
# 2019-08-29: 如何用 webpack 打包组件库 ✅
好好想想先 😌
参考链接
一句话
- 多入口
- 利用 external 排除外部扩展
# 2019-08-28: optimization 配置细节 ✅
好好想想先 😌
参考链接
一句话
- chunks
- cacheGroups
# 2019-08-27: 如何提升打包速度 ✅
好好想想先 😌
参考链接
一句话
- ParallelUglifyPlugin
- happypack
- dll
- 模块缓存
- 多入口
# 2019-08-26: 在国际化应用中,如何实现多国家差异化打包 ✅
好好想想先 😌
参考链接
一句话
- Use i18n-webpack-plugin.
- Use multiple entries.
# 2019-08-25: 什么是 tree shaking,如何实现 ✅
好好想想先 😌
参考链接
一句话
- 它依赖于 ES2015 模块语法的 静态结构 特性,例如 import 和 export
# 2019-08-24: 解释 AMD, CMD, CommonJS, ES Module, UMD ✅
好好想想先 😌
参考链接
一句话
- AMD(Asynchronous Module Definition) - require js
- CMD - sea js
- 1、AMD 推崇依赖前置,在定义模块的时候就要声明其依赖的模块
- 2、CMD 推崇就近依赖,只有在用到某个模块的时候再去 require
- CommonJS - node js
- ES Module - es6
- UMD - amd 和 common js 结合
;(function (window, factory) { if (typeof exports === 'object') { module.exports = factory() } else if (typeof define === 'function' && define.amd) { define(factory) } else { window.eventUtil = factory() } })(this, function () { //module ... })
# 2019-08-23: webpack 模块打包原理 ✅
好好想想先 😌
- 参考链接
- 一句话
会基于 AST 将模块转化为如下格式
function(module, exports, __webpack_require__) { var b = __webpack_require__(1); console.log('a'); b.b1(); }
# 2019-08-22: webpack 3 和 4 的区别 ✅
好好想想先 😌
参考链接
一句话
- mode
- CommonChunksPlugin
- UglifyJsPlugin
# 2019-08-21: babel preset stage 0 1 2 3 的区别 ✅
好好想想先 😌
参考链接
一句话
- 0 包含 1 2 3,1 包含 2 3,2 包含 3