gutenberg
gutenberg copied to clipboard
Fix TypeScript lib check issues
What?
This is a big messy PR designed to fix a number of problems that have appeared in our builds, in particular around types.
I'll extract these changes to their own PRs.
- [x] Two packages need to be updated. (#61572, #61503)
- [x] One packages needs to be patched. (#61570)
- [ ] We use
process.env
in ways that don't make sense (impossible in Node, process doesn't exist in the browser) and this pushes issue on to package users. There's a large change here that proposes an update to that system.
✅ There are some annoyances updating the packages where npm has installed framer-motion
under packages/components/node_modules
which makes updating it frustrating. This may all start with an npm dedupe
PR (#61532).
Why?
How?
Testing Instructions
Testing Instructions for Keyboard
Screenshots or screencast
Size Change: 0 B
Total Size: 1.74 MB
ℹ️ View Unchanged
Filename | Size |
---|---|
build/a11y/index.min.js |
955 B |
build/annotations/index.min.js |
2.27 kB |
build/api-fetch/index.min.js |
2.32 kB |
build/autop/index.min.js |
2.1 kB |
build/blob/index.min.js |
578 B |
build/block-directory/index.min.js |
7.29 kB |
build/block-directory/style-rtl.css |
1.03 kB |
build/block-directory/style.css |
1.03 kB |
build/block-editor/content-rtl.css |
4.57 kB |
build/block-editor/content.css |
4.57 kB |
build/block-editor/default-editor-styles-rtl.css |
395 B |
build/block-editor/default-editor-styles.css |
395 B |
build/block-editor/index.min.js |
260 kB |
build/block-editor/style-rtl.css |
15.5 kB |
build/block-editor/style.css |
15.5 kB |
build/block-library/blocks/archives/editor-rtl.css |
61 B |
build/block-library/blocks/archives/editor.css |
60 B |
build/block-library/blocks/archives/style-rtl.css |
90 B |
build/block-library/blocks/archives/style.css |
90 B |
build/block-library/blocks/audio/editor-rtl.css |
150 B |
build/block-library/blocks/audio/editor.css |
150 B |
build/block-library/blocks/audio/style-rtl.css |
122 B |
build/block-library/blocks/audio/style.css |
122 B |
build/block-library/blocks/audio/theme-rtl.css |
133 B |
build/block-library/blocks/audio/theme.css |
133 B |
build/block-library/blocks/avatar/editor-rtl.css |
116 B |
build/block-library/blocks/avatar/editor.css |
116 B |
build/block-library/blocks/avatar/style-rtl.css |
104 B |
build/block-library/blocks/avatar/style.css |
104 B |
build/block-library/blocks/block/editor-rtl.css |
277 B |
build/block-library/blocks/block/editor.css |
277 B |
build/block-library/blocks/button/editor-rtl.css |
415 B |
build/block-library/blocks/button/editor.css |
414 B |
build/block-library/blocks/button/style-rtl.css |
627 B |
build/block-library/blocks/button/style.css |
626 B |
build/block-library/blocks/buttons/editor-rtl.css |
337 B |
build/block-library/blocks/buttons/editor.css |
337 B |
build/block-library/blocks/buttons/style-rtl.css |
332 B |
build/block-library/blocks/buttons/style.css |
332 B |
build/block-library/blocks/calendar/style-rtl.css |
239 B |
build/block-library/blocks/calendar/style.css |
239 B |
build/block-library/blocks/categories/editor-rtl.css |
113 B |
build/block-library/blocks/categories/editor.css |
112 B |
build/block-library/blocks/categories/style-rtl.css |
124 B |
build/block-library/blocks/categories/style.css |
124 B |
build/block-library/blocks/code/editor-rtl.css |
53 B |
build/block-library/blocks/code/editor.css |
53 B |
build/block-library/blocks/code/style-rtl.css |
121 B |
build/block-library/blocks/code/style.css |
121 B |
build/block-library/blocks/code/theme-rtl.css |
124 B |
build/block-library/blocks/code/theme.css |
124 B |
build/block-library/blocks/columns/editor-rtl.css |
108 B |
build/block-library/blocks/columns/editor.css |
108 B |
build/block-library/blocks/columns/style-rtl.css |
421 B |
build/block-library/blocks/columns/style.css |
421 B |
build/block-library/blocks/comment-author-avatar/editor-rtl.css |
125 B |
build/block-library/blocks/comment-author-avatar/editor.css |
125 B |
build/block-library/blocks/comment-content/style-rtl.css |
92 B |
build/block-library/blocks/comment-content/style.css |
92 B |
build/block-library/blocks/comment-template/style-rtl.css |
199 B |
build/block-library/blocks/comment-template/style.css |
198 B |
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css |
123 B |
build/block-library/blocks/comments-pagination-numbers/editor.css |
121 B |
build/block-library/blocks/comments-pagination/editor-rtl.css |
222 B |
build/block-library/blocks/comments-pagination/editor.css |
209 B |
build/block-library/blocks/comments-pagination/style-rtl.css |
235 B |
build/block-library/blocks/comments-pagination/style.css |
231 B |
build/block-library/blocks/comments-title/editor-rtl.css |
75 B |
build/block-library/blocks/comments-title/editor.css |
75 B |
build/block-library/blocks/comments/editor-rtl.css |
840 B |
build/block-library/blocks/comments/editor.css |
839 B |
build/block-library/blocks/comments/style-rtl.css |
637 B |
build/block-library/blocks/comments/style.css |
636 B |
build/block-library/blocks/cover/editor-rtl.css |
671 B |
build/block-library/blocks/cover/editor.css |
674 B |
build/block-library/blocks/cover/style-rtl.css |
1.7 kB |
build/block-library/blocks/cover/style.css |
1.69 kB |
build/block-library/blocks/details/editor-rtl.css |
65 B |
build/block-library/blocks/details/editor.css |
65 B |
build/block-library/blocks/details/style-rtl.css |
86 B |
build/block-library/blocks/details/style.css |
86 B |
build/block-library/blocks/embed/editor-rtl.css |
312 B |
build/block-library/blocks/embed/editor.css |
312 B |
build/block-library/blocks/embed/style-rtl.css |
410 B |
build/block-library/blocks/embed/style.css |
410 B |
build/block-library/blocks/embed/theme-rtl.css |
133 B |
build/block-library/blocks/embed/theme.css |
133 B |
build/block-library/blocks/file/editor-rtl.css |
326 B |
build/block-library/blocks/file/editor.css |
327 B |
build/block-library/blocks/file/style-rtl.css |
280 B |
build/block-library/blocks/file/style.css |
281 B |
build/block-library/blocks/file/view.min.js |
324 B |
build/block-library/blocks/footnotes/style-rtl.css |
201 B |
build/block-library/blocks/footnotes/style.css |
199 B |
build/block-library/blocks/form-input/editor-rtl.css |
227 B |
build/block-library/blocks/form-input/editor.css |
227 B |
build/block-library/blocks/form-input/style-rtl.css |
343 B |
build/block-library/blocks/form-input/style.css |
343 B |
build/block-library/blocks/form-submission-notification/editor-rtl.css |
340 B |
build/block-library/blocks/form-submission-notification/editor.css |
340 B |
build/block-library/blocks/form-submit-button/style-rtl.css |
69 B |
build/block-library/blocks/form-submit-button/style.css |
69 B |
build/block-library/blocks/form/view.min.js |
471 B |
build/block-library/blocks/freeform/editor-rtl.css |
2.61 kB |
build/block-library/blocks/freeform/editor.css |
2.61 kB |
build/block-library/blocks/gallery/editor-rtl.css |
956 B |
build/block-library/blocks/gallery/editor.css |
960 B |
build/block-library/blocks/gallery/style-rtl.css |
1.72 kB |
build/block-library/blocks/gallery/style.css |
1.72 kB |
build/block-library/blocks/gallery/theme-rtl.css |
108 B |
build/block-library/blocks/gallery/theme.css |
108 B |
build/block-library/blocks/group/editor-rtl.css |
403 B |
build/block-library/blocks/group/editor.css |
403 B |
build/block-library/blocks/group/style-rtl.css |
103 B |
build/block-library/blocks/group/style.css |
103 B |
build/block-library/blocks/group/theme-rtl.css |
78 B |
build/block-library/blocks/group/theme.css |
78 B |
build/block-library/blocks/heading/style-rtl.css |
189 B |
build/block-library/blocks/heading/style.css |
189 B |
build/block-library/blocks/html/editor-rtl.css |
336 B |
build/block-library/blocks/html/editor.css |
337 B |
build/block-library/blocks/image/editor-rtl.css |
891 B |
build/block-library/blocks/image/editor.css |
891 B |
build/block-library/blocks/image/style-rtl.css |
1.6 kB |
build/block-library/blocks/image/style.css |
1.59 kB |
build/block-library/blocks/image/theme-rtl.css |
133 B |
build/block-library/blocks/image/theme.css |
133 B |
build/block-library/blocks/image/view.min.js |
1.54 kB |
build/block-library/blocks/latest-comments/style-rtl.css |
357 B |
build/block-library/blocks/latest-comments/style.css |
357 B |
build/block-library/blocks/latest-posts/editor-rtl.css |
213 B |
build/block-library/blocks/latest-posts/editor.css |
212 B |
build/block-library/blocks/latest-posts/style-rtl.css |
494 B |
build/block-library/blocks/latest-posts/style.css |
494 B |
build/block-library/blocks/list/style-rtl.css |
88 B |
build/block-library/blocks/list/style.css |
88 B |
build/block-library/blocks/media-text/editor-rtl.css |
306 B |
build/block-library/blocks/media-text/editor.css |
305 B |
build/block-library/blocks/media-text/style-rtl.css |
505 B |
build/block-library/blocks/media-text/style.css |
503 B |
build/block-library/blocks/more/editor-rtl.css |
431 B |
build/block-library/blocks/more/editor.css |
431 B |
build/block-library/blocks/navigation-link/editor-rtl.css |
668 B |
build/block-library/blocks/navigation-link/editor.css |
669 B |
build/block-library/blocks/navigation-link/style-rtl.css |
193 B |
build/block-library/blocks/navigation-link/style.css |
192 B |
build/block-library/blocks/navigation-submenu/editor-rtl.css |
296 B |
build/block-library/blocks/navigation-submenu/editor.css |
295 B |
build/block-library/blocks/navigation/editor-rtl.css |
2.26 kB |
build/block-library/blocks/navigation/editor.css |
2.26 kB |
build/block-library/blocks/navigation/style-rtl.css |
2.26 kB |
build/block-library/blocks/navigation/style.css |
2.25 kB |
build/block-library/blocks/navigation/view.min.js |
1.03 kB |
build/block-library/blocks/nextpage/editor-rtl.css |
395 B |
build/block-library/blocks/nextpage/editor.css |
395 B |
build/block-library/blocks/page-list/editor-rtl.css |
377 B |
build/block-library/blocks/page-list/editor.css |
377 B |
build/block-library/blocks/page-list/style-rtl.css |
175 B |
build/block-library/blocks/page-list/style.css |
175 B |
build/block-library/blocks/paragraph/editor-rtl.css |
235 B |
build/block-library/blocks/paragraph/editor.css |
235 B |
build/block-library/blocks/paragraph/style-rtl.css |
335 B |
build/block-library/blocks/paragraph/style.css |
335 B |
build/block-library/blocks/post-author/style-rtl.css |
175 B |
build/block-library/blocks/post-author/style.css |
176 B |
build/block-library/blocks/post-comments-form/editor-rtl.css |
96 B |
build/block-library/blocks/post-comments-form/editor.css |
96 B |
build/block-library/blocks/post-comments-form/style-rtl.css |
508 B |
build/block-library/blocks/post-comments-form/style.css |
508 B |
build/block-library/blocks/post-content/editor-rtl.css |
74 B |
build/block-library/blocks/post-content/editor.css |
74 B |
build/block-library/blocks/post-date/style-rtl.css |
61 B |
build/block-library/blocks/post-date/style.css |
61 B |
build/block-library/blocks/post-excerpt/editor-rtl.css |
71 B |
build/block-library/blocks/post-excerpt/editor.css |
71 B |
build/block-library/blocks/post-excerpt/style-rtl.css |
141 B |
build/block-library/blocks/post-excerpt/style.css |
141 B |
build/block-library/blocks/post-featured-image/editor-rtl.css |
734 B |
build/block-library/blocks/post-featured-image/editor.css |
732 B |
build/block-library/blocks/post-featured-image/style-rtl.css |
342 B |
build/block-library/blocks/post-featured-image/style.css |
342 B |
build/block-library/blocks/post-navigation-link/style-rtl.css |
215 B |
build/block-library/blocks/post-navigation-link/style.css |
214 B |
build/block-library/blocks/post-template/editor-rtl.css |
99 B |
build/block-library/blocks/post-template/editor.css |
98 B |
build/block-library/blocks/post-template/style-rtl.css |
397 B |
build/block-library/blocks/post-template/style.css |
396 B |
build/block-library/blocks/post-terms/style-rtl.css |
96 B |
build/block-library/blocks/post-terms/style.css |
96 B |
build/block-library/blocks/post-time-to-read/style-rtl.css |
69 B |
build/block-library/blocks/post-time-to-read/style.css |
69 B |
build/block-library/blocks/post-title/style-rtl.css |
100 B |
build/block-library/blocks/post-title/style.css |
100 B |
build/block-library/blocks/preformatted/style-rtl.css |
125 B |
build/block-library/blocks/preformatted/style.css |
125 B |
build/block-library/blocks/pullquote/editor-rtl.css |
135 B |
build/block-library/blocks/pullquote/editor.css |
135 B |
build/block-library/blocks/pullquote/style-rtl.css |
354 B |
build/block-library/blocks/pullquote/style.css |
353 B |
build/block-library/blocks/pullquote/theme-rtl.css |
174 B |
build/block-library/blocks/pullquote/theme.css |
174 B |
build/block-library/blocks/query-pagination-numbers/editor-rtl.css |
122 B |
build/block-library/blocks/query-pagination-numbers/editor.css |
121 B |
build/block-library/blocks/query-pagination/editor-rtl.css |
221 B |
build/block-library/blocks/query-pagination/editor.css |
211 B |
build/block-library/blocks/query-pagination/style-rtl.css |
288 B |
build/block-library/blocks/query-pagination/style.css |
284 B |
build/block-library/blocks/query-title/style-rtl.css |
63 B |
build/block-library/blocks/query-title/style.css |
63 B |
build/block-library/blocks/query/editor-rtl.css |
486 B |
build/block-library/blocks/query/editor.css |
486 B |
build/block-library/blocks/query/view.min.js |
958 B |
build/block-library/blocks/quote/style-rtl.css |
237 B |
build/block-library/blocks/quote/style.css |
237 B |
build/block-library/blocks/quote/theme-rtl.css |
233 B |
build/block-library/blocks/quote/theme.css |
235 B |
build/block-library/blocks/read-more/style-rtl.css |
140 B |
build/block-library/blocks/read-more/style.css |
140 B |
build/block-library/blocks/rss/editor-rtl.css |
101 B |
build/block-library/blocks/rss/editor.css |
101 B |
build/block-library/blocks/rss/style-rtl.css |
289 B |
build/block-library/blocks/rss/style.css |
288 B |
build/block-library/blocks/search/editor-rtl.css |
184 B |
build/block-library/blocks/search/editor.css |
184 B |
build/block-library/blocks/search/style-rtl.css |
690 B |
build/block-library/blocks/search/style.css |
689 B |
build/block-library/blocks/search/theme-rtl.css |
114 B |
build/block-library/blocks/search/theme.css |
114 B |
build/block-library/blocks/search/view.min.js |
478 B |
build/block-library/blocks/separator/editor-rtl.css |
146 B |
build/block-library/blocks/separator/editor.css |
146 B |
build/block-library/blocks/separator/style-rtl.css |
239 B |
build/block-library/blocks/separator/style.css |
239 B |
build/block-library/blocks/separator/theme-rtl.css |
194 B |
build/block-library/blocks/separator/theme.css |
194 B |
build/block-library/blocks/shortcode/editor-rtl.css |
286 B |
build/block-library/blocks/shortcode/editor.css |
286 B |
build/block-library/blocks/site-logo/editor-rtl.css |
805 B |
build/block-library/blocks/site-logo/editor.css |
805 B |
build/block-library/blocks/site-logo/style-rtl.css |
204 B |
build/block-library/blocks/site-logo/style.css |
204 B |
build/block-library/blocks/site-tagline/editor-rtl.css |
86 B |
build/block-library/blocks/site-tagline/editor.css |
86 B |
build/block-library/blocks/site-title/editor-rtl.css |
116 B |
build/block-library/blocks/site-title/editor.css |
116 B |
build/block-library/blocks/site-title/style-rtl.css |
57 B |
build/block-library/blocks/site-title/style.css |
57 B |
build/block-library/blocks/social-link/editor-rtl.css |
324 B |
build/block-library/blocks/social-link/editor.css |
324 B |
build/block-library/blocks/social-links/editor-rtl.css |
676 B |
build/block-library/blocks/social-links/editor.css |
675 B |
build/block-library/blocks/social-links/style-rtl.css |
1.5 kB |
build/block-library/blocks/social-links/style.css |
1.5 kB |
build/block-library/blocks/spacer/editor-rtl.css |
350 B |
build/block-library/blocks/spacer/editor.css |
350 B |
build/block-library/blocks/spacer/style-rtl.css |
48 B |
build/block-library/blocks/spacer/style.css |
48 B |
build/block-library/blocks/table/editor-rtl.css |
395 B |
build/block-library/blocks/table/editor.css |
395 B |
build/block-library/blocks/table/style-rtl.css |
639 B |
build/block-library/blocks/table/style.css |
639 B |
build/block-library/blocks/table/theme-rtl.css |
152 B |
build/block-library/blocks/table/theme.css |
152 B |
build/block-library/blocks/tag-cloud/style-rtl.css |
251 B |
build/block-library/blocks/tag-cloud/style.css |
253 B |
build/block-library/blocks/template-part/editor-rtl.css |
393 B |
build/block-library/blocks/template-part/editor.css |
393 B |
build/block-library/blocks/template-part/theme-rtl.css |
107 B |
build/block-library/blocks/template-part/theme.css |
107 B |
build/block-library/blocks/term-description/style-rtl.css |
111 B |
build/block-library/blocks/term-description/style.css |
111 B |
build/block-library/blocks/text-columns/editor-rtl.css |
95 B |
build/block-library/blocks/text-columns/editor.css |
95 B |
build/block-library/blocks/text-columns/style-rtl.css |
166 B |
build/block-library/blocks/text-columns/style.css |
166 B |
build/block-library/blocks/verse/style-rtl.css |
99 B |
build/block-library/blocks/verse/style.css |
99 B |
build/block-library/blocks/video/editor-rtl.css |
552 B |
build/block-library/blocks/video/editor.css |
555 B |
build/block-library/blocks/video/style-rtl.css |
185 B |
build/block-library/blocks/video/style.css |
185 B |
build/block-library/blocks/video/theme-rtl.css |
133 B |
build/block-library/blocks/video/theme.css |
133 B |
build/block-library/classic-rtl.css |
179 B |
build/block-library/classic.css |
179 B |
build/block-library/common-rtl.css |
1.11 kB |
build/block-library/common.css |
1.11 kB |
build/block-library/editor-elements-rtl.css |
75 B |
build/block-library/editor-elements.css |
75 B |
build/block-library/editor-rtl.css |
12.2 kB |
build/block-library/editor.css |
12.2 kB |
build/block-library/elements-rtl.css |
54 B |
build/block-library/elements.css |
54 B |
build/block-library/index.min.js |
218 kB |
build/block-library/reset-rtl.css |
472 B |
build/block-library/reset.css |
472 B |
build/block-library/style-rtl.css |
14.8 kB |
build/block-library/style.css |
14.8 kB |
build/block-library/theme-rtl.css |
707 B |
build/block-library/theme.css |
713 B |
build/block-serialization-default-parser/index.min.js |
1.12 kB |
build/block-serialization-spec-parser/index.min.js |
2.87 kB |
build/blocks/index.min.js |
51.8 kB |
build/commands/index.min.js |
15.2 kB |
build/commands/style-rtl.css |
953 B |
build/commands/style.css |
951 B |
build/components/index.min.js |
222 kB |
build/components/style-rtl.css |
12 kB |
build/components/style.css |
12 kB |
build/compose/index.min.js |
12.8 kB |
build/core-commands/index.min.js |
2.71 kB |
build/core-data/index.min.js |
72.5 kB |
build/customize-widgets/index.min.js |
10.9 kB |
build/customize-widgets/style-rtl.css |
1.36 kB |
build/customize-widgets/style.css |
1.36 kB |
build/data-controls/index.min.js |
640 B |
build/data/index.min.js |
9.01 kB |
build/date/index.min.js |
17.9 kB |
build/deprecated/index.min.js |
451 B |
build/dom-ready/index.min.js |
324 B |
build/dom/index.min.js |
4.65 kB |
build/edit-post/classic-rtl.css |
578 B |
build/edit-post/classic.css |
578 B |
build/edit-post/index.min.js |
14.6 kB |
build/edit-post/style-rtl.css |
2.68 kB |
build/edit-post/style.css |
2.68 kB |
build/edit-site/index.min.js |
214 kB |
build/edit-site/style-rtl.css |
12.5 kB |
build/edit-site/style.css |
12.5 kB |
build/edit-widgets/index.min.js |
17.5 kB |
build/edit-widgets/style-rtl.css |
4.18 kB |
build/edit-widgets/style.css |
4.18 kB |
build/editor/index.min.js |
91.8 kB |
build/editor/style-rtl.css |
8.39 kB |
build/editor/style.css |
8.4 kB |
build/element/index.min.js |
4.83 kB |
build/escape-html/index.min.js |
537 B |
build/format-library/index.min.js |
8.09 kB |
build/format-library/style-rtl.css |
493 B |
build/format-library/style.css |
492 B |
build/hooks/index.min.js |
1.55 kB |
build/html-entities/index.min.js |
448 B |
build/i18n/index.min.js |
3.58 kB |
build/interactivity/debug.min.js |
16.4 kB |
build/interactivity/file.min.js |
447 B |
build/interactivity/image.min.js |
1.67 kB |
build/interactivity/index.min.js |
13.2 kB |
build/interactivity/navigation.min.js |
1.17 kB |
build/interactivity/query.min.js |
740 B |
build/interactivity/router.min.js |
2.81 kB |
build/interactivity/search.min.js |
618 B |
build/is-shallow-equal/index.min.js |
527 B |
build/keyboard-shortcuts/index.min.js |
1.31 kB |
build/keycodes/index.min.js |
1.46 kB |
build/list-reusable-blocks/index.min.js |
2.14 kB |
build/list-reusable-blocks/style-rtl.css |
851 B |
build/list-reusable-blocks/style.css |
851 B |
build/media-utils/index.min.js |
2.92 kB |
build/modules/importmap-polyfill.min.js |
12.2 kB |
build/notices/index.min.js |
948 B |
build/nux/index.min.js |
1.58 kB |
build/nux/style-rtl.css |
748 B |
build/nux/style.css |
744 B |
build/patterns/index.min.js |
6.51 kB |
build/patterns/style-rtl.css |
595 B |
build/patterns/style.css |
595 B |
build/plugins/index.min.js |
1.81 kB |
build/preferences-persistence/index.min.js |
2.06 kB |
build/preferences/index.min.js |
2.9 kB |
build/preferences/style-rtl.css |
710 B |
build/preferences/style.css |
712 B |
build/primitives/index.min.js |
831 B |
build/priority-queue/index.min.js |
1.52 kB |
build/private-apis/index.min.js |
1 kB |
build/react-i18n/index.min.js |
629 B |
build/react-refresh-entry/index.min.js |
9.47 kB |
build/react-refresh-runtime/index.min.js |
6.78 kB |
build/redux-routine/index.min.js |
2.7 kB |
build/reusable-blocks/index.min.js |
2.72 kB |
build/reusable-blocks/style-rtl.css |
256 B |
build/reusable-blocks/style.css |
256 B |
build/rich-text/index.min.js |
10.1 kB |
build/router/index.min.js |
1.96 kB |
build/server-side-render/index.min.js |
1.97 kB |
build/shortcode/index.min.js |
1.39 kB |
build/style-engine/index.min.js |
2.02 kB |
build/token-list/index.min.js |
582 B |
build/url/index.min.js |
3.74 kB |
build/vendors/react-dom.min.js |
42.8 kB |
build/vendors/react-jsx-runtime.min.js |
554 B |
build/vendors/react.min.js |
2.65 kB |
build/viewport/index.min.js |
964 B |
build/warning/index.min.js |
249 B |
build/widgets/index.min.js |
7.13 kB |
build/widgets/style-rtl.css |
1.17 kB |
build/widgets/style.css |
1.17 kB |
build/wordcount/index.min.js |
1.02 kB |
I like the direction. Thank you for taking care of the additional refactoring for the special constants we use to guard some features like
IS_GUTENBERG_PLUGIN
,IS_WORDPRESS_CORE
andSCRIPT_DEBUG
.
Thanks! I agree, I think this will be easier to work with 👍
One file still needs to get updated:
Good spot! Maybe we should also switch the global global
to be globalThis
.
There are several eslint rules around how to use process.env.[OUR_VARIABLES]
. They probably need to be updated to ban those variables (maybe autofix them to the globalThis…
versions) and warn in the same cases (usage outside of conditionals):
https://github.com/WordPress/gutenberg/blob/5915f9ad0ebc69d77ee99769647a3398920d80ba/packages/eslint-plugin/rules/is-gutenberg-plugin.js#L80-L84
https://github.com/WordPress/gutenberg/blob/5915f9ad0ebc69d77ee99769647a3398920d80ba/packages/eslint-plugin/rules/gutenberg-phase.js#L162-L172
(Maybe GUTENBERG_PHASE needs to be removed or updated to simply ban the variable?)
Docs need an update: https://github.com/WordPress/gutenberg/blob/5915f9ad0ebc69d77ee99769647a3398920d80ba/docs/how-to-guides/feature-flags.md?plain=1#L5
This should have breaking change changelog for all the updated packages- maybe for all packages- mentioning the change to globalThis
.
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot
label.
If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.
Co-authored-by: sirreal <[email protected]>
Co-authored-by: youknowriad <[email protected]>
Co-authored-by: gziolo <[email protected]>
Co-authored-by: t-hamano <[email protected]>
Co-authored-by: talldan <[email protected]>
Co-authored-by: ellatrix <[email protected]>
To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.
Some conversation happened in Core Slack around the proposed approach. I'll link here for posterity:
https://wordpress.slack.com/archives/C02QB2JS7/p1715758629398369
Is there any make/core post or dev note that should be done as a result of this PR. Who would be interested to learn about this and how should we document it.
Is there any make/core post or dev note that should be done as a result of this PR. Who would be interested to learn about this and how should we document it.
We could post on make/core about it, I can draft something if you think that's the best place.
I was also wondering about making a breaking change for packages. Very few packages are actually affected by this change. In practice, these variables don't seem to be used that frequently. But which package? Potentially packages will be affected in the future and I don't expect folks to add a breaking change when they use one of these variables 😕 a
I was thinking about making a breaking change for all the packages that are intended for client side use and linking to some documentation.
Thoughts?
Yeah, marking as a breaking change seems good to me. For the make/core post I'm not entirely sure to be honest, I'm raising it for discussion. Who needs to know about this. Package consumers seems like an obvious thing (thus the breaking changes) but other than that it's unclear.
Do you think all the client packages should get a breaking change or only the ones immediately impacted?
Who needs to know about this?
Folks that have their own custom bundlers set up that are replacing the forms that are changed in this PR. They'd need to update replacements. So if they have webpack.DefinePlugin( { 'process.env.IS_GUTENBERG_PLUGIN': 'false' } )
it should become webpack.DefinePlugin( { 'globalThis.IS_GUTENBERG_PLUGIN': 'false' } )
.
That said, one of the goals here is to ensure that if folks don't do that, everything works.
Folks using wp-scripts should be fine.
Do you think all the client packages should get a breaking change or only the ones immediately impacted?
I guess the ones that are immediately impacted and the packages that depend on them. I don't think that's equivalent to all packages.
What type of breaking changes do you expect after refactoring these three constants to be set on globalThis
? All the code will continue to work. Are you worried that tree-shaking won't work out of the box anymore? I don't mind enforcing a major version bump to account for that. We could also sync that with enforcing some other breaking changes like increasing the minimum version of Node to 20, which is the lowest supported version by Gutenberg, WP core, and also the lowest active LTS version. That way, we could draft some sort of dev note / announcement on Make Core explaining all of that in one go. The benefit of a public post is that it's easier to share that information with the folks using WP packages. However, in the past we also used the Gutenberg plugin's release post to share similar details.
What type of breaking changes do you expect after refactoring these three constants to be set on
globalThis
? … Are you worried that tree-shaking won't work out of the box anymore?
Exactly this. It's going to be a very small difference, but if I had webpack set up to replace things correctly and then a library switched them without informing me… I'd be annoyed.
All the code will continue to work.
Definitely, that's what I find most compelling about this change is that on the whole things should be less fragile.
I was researching options for how different bundlers replace values at the bundle time, and this section for Rolloup (another article) is very similar to the approach proposed:
// rollup.config.js
import replace from '[@rollup/plugin-replace](http://twitter.com/rollup/plugin-replace)';
const devMode = (process.env.NODE_ENV === 'development');
console.log(`${ devMode ? 'development' : 'production' } mode bundle`);
export default [
{
input: './src/main.js',
plugins: [
replace({
values: {
__HELLO__: 'Hi there',
__GOODBYE__: 'Bye'
}
})
],
output: {
file: './build/bundle.js',
format: 'es',
sourcemap: devMode ? 'inline' : false
}
}
];
export function hello() {
console.log('__HELLO__ from a.js');
}
export function goodbye() {
console.log('__GOODBYE__ from a.js');
}
ESBuild offers --define
option:
$ echo 'hooks = DEBUG && require("hooks")' | esbuild --define:DEBUG=true
hooks = require("hooks");
$ echo 'hooks = DEBUG && require("hooks")' | esbuild --define:DEBUG=false
hooks = false;
Bun also offers the define functionality:
await Bun.build({
entrypoints: ['./index.tsx'],
outdir: './out',
define: {
STRING: JSON.stringify("value"),
"nested.boolean": "true",
},
})
Vite has a more elaborate system for dealing with Env variables and modes. I read in https://github.com/vitejs/vite/issues/11685 it's even possible to mix import.meta.env.*
and process.env.*
for custom values depending on the target environment when bundling.
I've rebased this and added breaking change changelogs to all the affected packages.
I received some positive feedback about this change in Slack: https://wordpress.slack.com/archives/C02QB2JS7/p1716288162649129?thread_ts=1715758629.398369&cid=C02QB2JS7
No blockers were mentioned.
Flaky tests detected in 926ab278c9184d94e43b9f571d378946fae39e24. Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.
🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/9205833095 📝 Reported issues:
- #61806 in
/test/e2e/specs/site-editor/zoom-out.spec.js
After receiving positive feedback in Slack and no opposition anywhere, I plan to land this soon.
I added and removed the dev note label. Dev notes are largely for WordPress developers and these changes should not affect them at all. They'll be using the included Scripts from WordPress that already have the optimizations applied.
This change already includes breaking change changelogs for folks consuming the packages on npm, that's probably the best place for it.
@sirreal, I see the following error in the editor after this got merged. Is there an additional step to get it fixed?
Screenshot
@Mamaduka I think that's probably a stale process or something. Try running npm ci
and restarting the linter process or your editor. I'm not able to reproduce any issue with the new lint rules in the repo.
Thanks, @sirreal! The npm ci
did the trick.