After updating Gatsby from 3.0.4 to 4.12.1 I got the following error message: Error: Cannot find module 'gatsby-plugin-utils/polyfill-remote-file' and the stack trace below:
$ NODE_OPTIONS="-r esm" gatsby develop -H 0.0.0.0 -o
/Users/esausilva/Development/Projects/andreasilva-design/node_modules/yoga-layout-prebuilt/yoga-layout/build/Release/nbind.js:53
throw ex;
^
/Users/esausilva/Development/Projects/andreasilva-design/node_modules/gatsby/dist/utils/start-server.js:1
Error: Cannot find module 'gatsby-plugin-utils/polyfill-remote-file'
Require stack:
- /Users/esausilva/Development/Projects/andreasilva-design/node_modules/gatsby/dist/utils/start-server.js
...
This is because Gatsby now natively supports ES6 Module Syntax in Gatsby API and I had the following in my package.json, adding support manually for ESM when building.
{
"scripts": {
"build": "NODE_OPTIONS=\"-r esm\" gatsby build",
"develop": "NODE_OPTIONS=\"-r esm\" gatsby develop -H 0.0.0.0 -o",
"serve": "NODE_OPTIONS=\"-r esm\" gatsby serve"
}
}
More specifically NODE_OPTIONS=\"-r esm\" option
Fixing ES6 Module Error in Gatsby
Rename your gatsby-node.js to gatsby-node.esm.js, create a new file named gatsby-node.js and add the following
// gatsby-node.js
const requireEsm = require('esm')(module);
module.exports = requireEsm('./gatsby-node.esm.js');
Fix your package.json scripts
"scripts": {
"build": "gatsby build",
"develop": "gatsby develop -H 0.0.0.0 -o",
"serve": "gatsby serve"
},
For the official documentation follow: https://support.gatsbyjs.com/hc/en-us/articles/1500000294121-Using-ES6-Module-Syntax-in-Gatsby-API-Files-on-Gatsby-Cloud
[bottomads][/bottomads]
Thanks.