Skip to content

v0.26.0

Compare
Choose a tag to compare
@thescientist13 thescientist13 released this 27 Jul 01:52
· 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

  1. support server rendering a native HTMLElement and export default for custom elements as pages
  2. should have the ability to statically export server rendered routes as just HTML
  3. 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.

  1. Install the Puppeteer renderer plugin
    $ npm install @greenwood/plugin-renderer-puppeteer --save-dev
  2. 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()
      ]
    }
  3. 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(-)