pastakPasta-K @ Kyoto.js 17

Gyazo

7
TypeScript
Nota Inc Gyazo
JavaScript / React / Ruby on Rails / Browser Extension
/
: 🍻


HTML
CSS
JS/CSS
jQuery/React/axios/lodash ...etc

1006030
60

60

Gyazo
lightroom使
FMP

lighthouse
First Contentful Paint


JS/CSS
HTML

<img> loading 使ChromeLazyLoading
<img loading="lazy" src="...">
IntersectionObserver 使
SNS
YouTube
CSS
UX

JavaScript
React/Angular/Vue使
JavaScript

JavaScript
Gyazo
JavaScript
JS
SNSJS

JS
webpack-bundle-analyzer 使

webpack-bundle-analyzer
$ webpack --profile --json > stats.json
$ npx webpack-bundle-analyzer bundle/output/path/stats.json

: lodash
ES
lodash-es
tree shaking使

lodash-es
before
Gyazo
after
Gyazo

: Moment.jslocale
Moment.jslocale
> 75% (160 minified KBs)¹ of Moment.js size are files used for localization. They are always included when you build your app with webpack.
moment-locales-webpack-plugin使
const MomentLocalesPlugin = require('moment-locales-webpack-plugin');
module.exports = {
plugins: [
// To strip all locales except en
new MomentLocalesPlugin(),
// Or: To strip all locales except en, es-us and ru
// (en is built into Moment and cant be removed)
new MomentLocalesPlugin({
localesToKeep: ['es-us', 'ru'],
}),
],
};

webpackCode Splitting
dynamic importJS1chunk
JavaScript
[] Chunkpreloaddynamic importJSJavaScript
JS調
entrypoint

CPU
requestIdleCallback
ChromeFirefox使

JavaScript async DOMContentLoaded
preloadprefetch使
APIHTML
JavaScript

11