Da es sich um einen Knoten handelt, verwendet gatsby-node.js
commonjs, verwenden Komponenten ES6-Module.
Angenommen, ich möchte eine Funktion freigeben, die den Slug einer erstellten Seite berechnet:
/* export ? */ function getSlug(post) {
return `/posts/${post.data}${post.title.toLowerCase()}`
}
/* module.exports = { getSlug }; ? */
Jetzt möchte ich diese Funktion beide in importieren
gatsby-node.js
, um es in der createPage
API zu verwendenPosts.js
, um auf die einzelnen Post-Pfade zu verlinken.Wie würden Sie in diesem Fall empfehlen, Code zu teilen und mit den verschiedenen Modulsystemen umzugehen?
Nach meiner Erfahrung können Sie Knotenmodule wie gewohnt in Ihren Browsercode importieren, es sei denn, Sie verwenden Knoten-APIs. Stehen Sie vor einem Problem?
// shared.js
function getSlug(post) {
return `/posts/${post.data}${post.title.toLowerCase()}`
}
module.exports = { getSlug }
// Posts.js
import { getSlug } from './path/to/shared.js'
Hilfreichster Kommentar
Nach meiner Erfahrung können Sie Knotenmodule wie gewohnt in Ihren Browsercode importieren, es sei denn, Sie verwenden Knoten-APIs. Stehen Sie vor einem Problem?