v0.26.0
·
291 commits
to master
since this release
Overview
This release of Greenwood introduces some exciting new features for Greenwood 🥳
- Custom Elements as pages
- WCC is now the default server and prerendering solution
- Puppeteer is now its own plugin (breaking)
Checkout the accompanying blog post for more information on all these features.
If using Yarn, you can can upgrade all your @greenwood packages at once
$ yarn upgrade --scope @greenwood --latest
Changelog
https://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.26.0
- support server rendering a native
HTMLElement
andexport default
for custom elements as pages - should have the ability to statically export server rendered routes as just HTML
- add Declarative Shadow DOM polyfill support to polyfill plugin
Breaking Changes
Puppeteer + Prerendering
This was a big breaking change but should be fairly easy to adapt to.
If you can, see this PR as an example for how to adopt WCC instead.
- Install the Puppeteer renderer plugin
$ npm install @greenwood/plugin-renderer-puppeteer --save-dev
- Add the plugin to your greenwood.config.js. You can also remove
prerender: true
.import { greenwoodPluginRendererPuppeteer } from '@greenwood/plugin-renderer-puppeteer'; export default { plugins: [ ...greenwoodPluginRendererPuppeteer() ] }
- You can also delete the puppeteer package from your package.json
Plugin Import CommonJS
You may not have noticed but there was a typo in the named export!
// before
import { greenwodPluginImportCommonJs } from '@greenwood/plugin-import-commonjs';
// after
import { greenwoodPluginImportCommonJs } from '@greenwood/plugin-import-commonjs';
Known Issues
N / A
Diff
$ git diff v0.25.0 v0.26.0 --stat | grep -v "www"
.c8rc.json | 2 +-
.github/CONTRIBUTING.md | 38 +--
greenwood.config.js | 4 +-
lerna.json | 2 +-
packages/cli/package.json | 15 +-
packages/cli/src/commands/build.js | 66 ++---
packages/cli/src/commands/serve.js | 4 +-
packages/cli/src/index.js | 37 ---
packages/cli/src/lib/router.js | 47 +++-
packages/cli/src/lib/ssr-route-worker.js | 39 ++-
packages/cli/src/lifecycles/bundle.js | 6 +-
packages/cli/src/lifecycles/prerender.js | 92 ++----
packages/cli/src/lifecycles/serve.js | 9 +-
...nderer-string.js => plugin-renderer-default.js} | 6 +-
.../src/plugins/resource/plugin-standard-html.js | 21 +-
...optimization-mpa.js => plugin-static-router.js} | 35 +--
.../build.config.default.spec.js | 2 +-
.../build.config-optimization-static.spec.js | 17 +-
.../greenwood.config.js | 3 +-
.../build.config.prerender.spec.js | 17 +-
.../src/components/header.js | 4 +-
.../build.config.static-router.spec.js | 25 +-
.../src/pages/artists.js | 17 ++
.../build.default.import-node-modules.spec.js | 61 +---
.../greenwood.config.js | 3 -
.../src/pages/index.html | 14 -
.../build.default.quick-start-npx.spec.js | 2 +-
.../build.default.spa/build.default.spa.spec.js | 4 +-
.../build.default.ssr-static-export.spec.js | 230 +++++++++++++++
.../package.json | 0
.../src/components/counter.js | 42 +++
.../src/components/footer.js | 0
.../src/pages/artists.js | 92 ++++++
.../src/pages/index.md | 3 +
.../src/templates/app.html | 13 +
.../build.default.ssr/build.default.ssr.spec.js | 190 ++++++-------
.../cases/build.default.ssr/greenwood.config.js | 3 +
.../cases/build.default.ssr/src/components/card.js | 43 +++
.../cases/build.default.ssr/src/pages/artists.js | 8 +-
.../cases/build.default.ssr/src/pages/users.js | 21 ++
.../cases/build.default.ssr/src/templates/app.html | 2 -
...d.default.workspace-frontmatter-imports.spec.js | 59 ++--
.../src/components/counter/counter.js | 13 +-
.../src/components/multi-hyphen/multi-hyphen.js | 16 ++
.../src/pages/examples/counter.md | 14 -
.../src/pages/examples/demo.md | 13 +
...default.workspace-javascript-css-remote.spec.js | 2 +-
.../build.default.workspace-javascript-css.spec.js | 64 +----
.../greenwood.config.js | 3 -
.../src/pages/index.html | 1 -
.../src/scripts/main.js | 1 -
.../build.config.plugins-resource.spec.js | 27 +-
.../build.plugins.resource/greenwood.config.js | 1 -
.../build.plugins-source.spec.js | 2 +-
.../cases/develop.default/develop.default.spec.js | 2 +-
.../serve.config.static-router/greenwood.config.js | 3 +
.../serve.config.static-router.spec.js | 113 ++++++++
.../serve.config.static-router/src/pages/about.md | 7 +
.../src/pages/artists.js | 17 ++
.../serve.config.static-router/src/pages/index.md | 3 +
packages/init/README.md | 12 +-
packages/init/package.json | 2 +-
.../test/cases/build.default/build.default.spec.js | 1 +
.../cases/develop.default/develop.default.spec.js | 1 +
.../init/test/cases/init.yarn/init.yarn.spec.js | 1 +
packages/plugin-babel/package.json | 4 +-
.../test/cases/default/default.spec.js | 2 +-
.../options.extend-config.spec.js | 2 +-
packages/plugin-google-analytics/package.json | 4 +-
.../test/cases/default/default.spec.js | 4 +-
.../error-analytics-id/error-analytics-id.spec.js | 4 +-
.../option-anonymous/option-anonymous.spec.js | 4 +-
packages/plugin-graphql/README.md | 26 +-
packages/plugin-graphql/package.json | 4 +-
.../test/cases/query-children/greenwood.config.js | 8 +-
.../cases/query-children/query-children.spec.js | 7 +-
.../test/cases/query-config/greenwood.config.js | 6 +-
.../test/cases/query-config/query-config.spec.js | 5 +-
.../query-custom-frontmatter/greenwood.config.js | 5 +-
.../query-custom-frontmatter.spec.js | 5 +-
.../cases/query-custom-schema/greenwood.config.js | 5 +-
.../query-custom-schema.spec.js | 5 +-
.../test/cases/query-graph/greenwood.config.js | 5 +-
.../test/cases/query-graph/query-graph.spec.js | 7 +-
.../test/cases/query-menu/greenwood.config.js | 5 +-
.../test/cases/query-menu/query-menu.spec.js | 5 +-
packages/plugin-import-commonjs/package.json | 4 +-
packages/plugin-import-commonjs/src/index.js | 4 +-
.../test/cases/default/default.spec.js | 26 +-
.../test/cases/default/greenwood.config.js | 5 +-
packages/plugin-import-css/README.md | 4 +
packages/plugin-import-css/package.json | 4 +-
.../test/cases/default/default.spec.js | 30 +-
.../test/cases/default/greenwood.config.js | 1 -
.../cases/develop.default/develop.default.spec.js | 2 +-
packages/plugin-import-json/README.md | 4 +
packages/plugin-import-json/package.json | 4 +-
.../test/cases/default/default.spec.js | 27 +-
.../test/cases/default/greenwood.config.js | 1 -
.../cases/develop.default/develop.default.spec.js | 2 +-
packages/plugin-include-html/package.json | 4 +-
.../build.default.custom-element.spec.js | 2 +-
.../build.default.link-tag.spec.js | 2 +-
packages/plugin-polyfills/README.md | 28 +-
packages/plugin-polyfills/package.json | 4 +-
packages/plugin-polyfills/src/index.js | 78 +++--
.../test/cases/default/default.spec.js | 4 +-
.../plugin-polyfills/test/cases/dsd/dsd.spec.js | 86 ++++++
.../test/cases/dsd/greenwood.config.js | 10 +
.../test/cases/lit/greenwood.config.js | 5 +-
.../plugin-polyfills/test/cases/lit/lit.spec.js | 64 ++---
packages/plugin-postcss/package.json | 4 +-
.../test/cases/default/default.spec.js | 2 +-
.../options.extend-config.spec.js | 2 +-
packages/plugin-renderer-lit/README.md | 63 ++---
packages/plugin-renderer-lit/package.json | 4 +-
.../src/ssr-route-worker-lit.js | 22 +-
.../test/cases/build.default/build.default.spec.js | 35 ++-
.../test/cases/build.default/src/pages/users.js | 24 ++
.../build.prerender.getting-started.spec.js | 2 +-
packages/plugin-renderer-puppeteer/README.md | 80 ++++++
packages/plugin-renderer-puppeteer/package.json | 32 +++
packages/plugin-renderer-puppeteer/src/index.js | 27 ++
.../src/lib/browser.js | 3 +-
.../src/plugins/resource.js | 48 ++++
.../src/plugins/server.js | 23 ++
.../src/puppeteer-handler.js | 60 ++++
.../test/cases/build.default/build.default.spec.js | 313 +++++++++++++++++++++
.../test/cases/build.default/greenwood.config.js | 7 +
.../test/cases/build.default/package.json | 12 +
.../cases/build.default/src/components/header.js | 24 ++
.../test/cases/build.default/src/pages/index.html | 26 ++
.../test/cases/build.default/src/scripts/main.js | 13 +
packages/plugin-typescript/README.md | 4 +
packages/plugin-typescript/package.json | 4 +-
.../test/cases/default/default.spec.js | 2 +-
.../options.extend-config.spec.js | 2 +-
test/smoke-test.js | 1 -
test/utils.js | 51 ----
yarn.lock | 69 +++--
163 files changed, 2548 insertions(+), 1091 deletions(-)