General

Polyfilling service

As of Flight 6.2.0 and 5.16.8, we no longer depend on the polyfill.io service to boot the shop client-side. If you wish to support older browsers, this feature can be reintroduced by adding usePolyfilling option to shop.config. Instead of polyfill.io, we now use the Cloudflare version. You can find more information on this change on the Cloudflare Blog.

Upgrading to 5.16.8 or 6.2.0

To temporarily address the polyfill.io outage, the project may include the following line in the index.html file: <script>window.polyFillsLoaded = true</script>. This line should be removed when upgrading to version 6.2.0 or 5.16.8.

Click here to test if the browser needs polyfilling.

No index

On each category and page in Norce admin, there's an option not to include a specific category or page to search engines. In recent (5.14.5 and above) Flight versions this is handled by default. The framework is adding a <meta name="robots" content="noindex" /> HTML tag to the server and client rendered DOM.

For you, or the Flight core code to uptake this value you need to add the allowWebIndex field to Page and Category fragments imported to the Route query. More on route query usage

We always recommend using the latest release but if not possible you can add this yourself using the Helmet already included in the framework dependencies. The data is presented in Storeapi on Category and Page type as a boolean on (category|page).allowWebIndexing, uptake this value in a Helmet component and render a meta tag inside it based on it's value.

Route Preloading

The Flight framework has the ability to preload routes when the user hovers (desktop) or starts to touch (mobile) a particular Product, Category or Page link. The appropriate components are then loaded along with the response from the StoreAPI. This can drastically improve the perceived performance.

To enable preloading, add your routeQuery along with the components you want to preload, to your shop.config.js. Example:

Copy
Copied
// src/shop.config.js
import routeQuery from "./components/RouteQuery.gql";
import CategoryPage from "./components/CategoryPage/CategoryPage.loadable";
import ContentPage from "./components/ContentPage/ContentPage.loadable";
import ProductPage from "./components/ProductPage/ProductPage.loadable";

export default {
  preload: {
    routeQuery,
    preloadComponents: {
      Product: [ProductPage],
      Category: [CategoryPage],
      Page: [ContentPage],
    },
  },
};
Copyright © Norce 2023. All right reserved.