-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhancement/issue 971 refactor bundling and optimizations #974
Merged
thescientist13
merged 51 commits into
release/0.27.0
from
enhancement/issue-971-refactor-bundling-and-optimizations
Sep 22, 2022
Merged
Enhancement/issue 971 refactor bundling and optimizations #974
thescientist13
merged 51 commits into
release/0.27.0
from
enhancement/issue-971-refactor-bundling-and-optimizations
Sep 22, 2022
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
thescientist13
added
enhancement
Improve something existing (e.g. no docs, new APIs, etc)
Plugins
Greenwood Plugins
CLI
labels
Aug 17, 2022
5 tasks
3 tasks
…nfiguration without needing extra rollup plugin
…ns' of github.com:ProjectEvergreen/greenwood into enhancement/issue-971-refactor-bundling-and-optimizations
5 tasks
thescientist13
deleted the
enhancement/issue-971-refactor-bundling-and-optimizations
branch
September 22, 2022 12:18
thescientist13
restored the
enhancement/issue-971-refactor-bundling-and-optimizations
branch
September 22, 2022 12:46
18 tasks
thescientist13
added a commit
that referenced
this pull request
Nov 3, 2022
* add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML
thescientist13
added a commit
that referenced
this pull request
Nov 11, 2022
* add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML
thescientist13
added a commit
that referenced
this pull request
Nov 11, 2022
* add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML
thescientist13
added a commit
that referenced
this pull request
Nov 12, 2022
* Enhancement/issue 971 refactor bundling and optimizations (#974) * add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML * v0.27.0-alpha.0 * (WIP) swap PostCSS in CLI with custom AST solution * refactor website CSS * basic implementation of minified CSS from AST * support relative @import statements * refactor AST parsing to recursive function * support deeply nested @import and CSS custom properties * fix missing declaration semicolon * correctly close Rule brackets * general on leave refactoring * more selector support * all specs passing * support percentage * test for percentage * support url and @import url * add important support * custom implementation for handling matchers in attribute selectors * restore website prism styles * nth and lang selectors support * improve support for matching selector types * add error logging for CSS parsing
thescientist13
added a commit
that referenced
this pull request
Nov 12, 2022
* add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML
thescientist13
added a commit
that referenced
this pull request
Nov 12, 2022
* Enhancement/issue 971 refactor bundling and optimizations (#974) * add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML * v0.27.0-alpha.0 * (WIP) swap PostCSS in CLI with custom AST solution * refactor website CSS * basic implementation of minified CSS from AST * support relative @import statements * refactor AST parsing to recursive function * support deeply nested @import and CSS custom properties * fix missing declaration semicolon * correctly close Rule brackets * general on leave refactoring * more selector support * all specs passing * support percentage * test for percentage * support url and @import url * add important support * custom implementation for handling matchers in attribute selectors * restore website prism styles * nth and lang selectors support * improve support for matching selector types * add error logging for CSS parsing
thescientist13
added a commit
that referenced
this pull request
Nov 19, 2022
* add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML
thescientist13
added a commit
that referenced
this pull request
Nov 21, 2022
* Enhancement/issue 971 refactor bundling and optimizations (#974) * add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML * v0.27.0-alpha.0 * experimental loaders for SSR custom resources * set minimum nodejs v16.x requirement * latest WIP * custom SSR loaders for JSON * working test case testing for SSR prerender with import CSS plugin * experimental test task and github actions * remove demo code * add test cases for import JSON with prerendering * upgrade latest gallinago * enable experimental testing capabilities for CI * post rebase reconsilations * align versioning * experimental specs passing on windows * remove lint from experimental github actions * refine exp test tasks * minor refactor * fix windows exp github action workflow * increase mocha timeout for to accomodate exp test runs * formatting * updated import CSS and JSON plugin README docs * SSR usage for experimental loaders
thescientist13
added a commit
that referenced
this pull request
Nov 23, 2022
* add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML
thescientist13
added a commit
that referenced
this pull request
Nov 23, 2022
* Enhancement/issue 971 refactor bundling and optimizations (#974) * add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML * v0.27.0-alpha.0 * (WIP) swap PostCSS in CLI with custom AST solution * refactor website CSS * basic implementation of minified CSS from AST * support relative @import statements * refactor AST parsing to recursive function * support deeply nested @import and CSS custom properties * fix missing declaration semicolon * correctly close Rule brackets * general on leave refactoring * more selector support * all specs passing * support percentage * test for percentage * support url and @import url * add important support * custom implementation for handling matchers in attribute selectors * restore website prism styles * nth and lang selectors support * improve support for matching selector types * add error logging for CSS parsing
thescientist13
added a commit
that referenced
this pull request
Nov 23, 2022
* Enhancement/issue 971 refactor bundling and optimizations (#974) * add cloud IDE caveat to puppeteer renderer plugin readme (#967) * init commit of refactoring for script tags with a src * initial CSS optimizing * sync optimized link tags in final output * refactored for shared reources * handle inline script bundling * support serving custom resources using Greenwood plugins in Rollup configuration without needing extra rollup plugin * non resource related Rollup plugins supported * custom resource plugins and rollup plugins working together * handle empty input for Rollup * updated lock file * handle inline style tag bundling and optimizing * default optimization spec passing * refactor merging app and page templates * clarifying corrections in spec files * inline optimization config working * none optimization support * none optimization support * none and static optimization overrides * refactor html rendering and optimizing * refactoring and more CLI specs passing * add missing variable * SSR specs and optimizing resource bundling * minor refactoring and logging * resolving some plugin specs * restore develop command related GraphQL specs * custom graphql query spec * all specs passing * drop rollup plugin deps from import typescript plugin * all Greenwood commands and specs passing * restore static router with custom prerender * restore postcss-import * refactor shared resources to a Map and handle dupes * restore local packages workaround for local Rollup bundling * better monorepo Rollup facade modules detection * switch console log * remove console logging * update plugin related docs * local solution for windows support * refactor errant object assign * full cross platform URL support * fix lint * fix extra bundles when custom prerendering * clean up stale or already tracked TODOs * add nested head tag smoke tests * check for app template validation for HUD display * misc refactoring and TODOs cleanup * restore static router (again) * standardize passing correct reference for prerender scripts * clean up data-gwd-opt markers from final HTML * v0.27.0-alpha.0 * experimental loaders for SSR custom resources * set minimum nodejs v16.x requirement * latest WIP * custom SSR loaders for JSON * working test case testing for SSR prerender with import CSS plugin * experimental test task and github actions * remove demo code * add test cases for import JSON with prerendering * upgrade latest gallinago * enable experimental testing capabilities for CI * post rebase reconsilations * align versioning * experimental specs passing on windows * remove lint from experimental github actions * refine exp test tasks * minor refactor * fix windows exp github action workflow * increase mocha timeout for to accomodate exp test runs * formatting * updated import CSS and JSON plugin README docs * SSR usage for experimental loaders
thescientist13
deleted the
enhancement/issue-971-refactor-bundling-and-optimizations
branch
December 18, 2022 01:08
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
breaking
CLI
documentation
Greenwood specific docs
enhancement
Improve something existing (e.g. no docs, new APIs, etc)
Plugins
Greenwood Plugins
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related Issue
resolves #971 and #581 (related to #970 and also ties into #550 )
Summary of Changes
General strategy revolved around reducing duplicate work and make more of the business logic "first party"
Some of the "breaking" changes actually help fix bugs too
<script>
and<style>
tags are getting minified / optimized when running build command #581 )TODO
import
JSON, CSS) for SSR #878 as ESM, and so maybe wouldn't need plugins for Rollup at all in that case?develop
/build
/serve
)postcssImport
optimizing in standard CSS pluginresources
before it goes into Rollup?optimizedFileContents
, like from lib/router.js (restore local project work around)ResourceInterface
lifecycles and best practices -/C:/
)Need to align on how Lit polyfill bundling is handled (once in CLI and once in the plugin it seems...)- see create Lit specific polyfill plugin #728clean up allgwd-data-opt=*
markers from HTMLoptimize should reusebody
have HUD check both valid app and page body rootshave plugins filter oncontentType
hashString
functionmisc code TODOsclean up scratch files in public folderadd smoke tests for nested head tags (e.g. there should be no<script> ... <script>...</script></script>
release/0.27.0
)Future Feature Smoke Testing (Nice To Have)
import
JSON, CSS) for SSR #878 (also confirm version of NodeJS we should use)Thoughts / Questions
ResourceInterface
, maybe as part of Standardize on Web APIs (Request
/Response
/URL
/ etc) #948 ? Maybe intercept should be more clearly documented as more of a middleware style?optimize
resource lifecycles take aurl
or body, or both? with a "hard" URL, you can get to a body, right? but what about chained optimizations? I think it should it always get abody
from the calling point. So then it would need URL at all then?imports
field toresources
in frontmatter?