Gatsby: 在gatsby-node.js和组件之间共享代码的推荐方法?

创建于 2019-10-09  ·  1评论  ·  资料来源: gatsbyjs/gatsby

由于是节点, gatsby-node.js使用commonjs,因此组件使用ES6模块。

假设我想共享一个功能,该功能可以计算已创建页面的特征:

/* export ? */ function getSlug(post) {
   return `/posts/${post.data}${post.title.toLowerCase()}`
}

/* module.exports = { getSlug }; ? */

现在我想同时导入此功能

  • gatsby-node.js以在createPage API中使用它
  • Posts.js中链接到各个帖子路径。

在这种情况下,您如何建议共享代码并处理不同的模块系统?

question or discussion

最有用的评论

根据我的经验,除非使用Node API,否则您可以像通常一样在浏览器代码中导入节点模块。 你有什么问题吗?

// shared.js
function getSlug(post) {
   return `/posts/${post.data}${post.title.toLowerCase()}`
}

module.exports = { getSlug }
// Posts.js
import { getSlug } from './path/to/shared.js'

>所有评论

根据我的经验,除非使用Node API,否则您可以像通常一样在浏览器代码中导入节点模块。 你有什么问题吗?

// shared.js
function getSlug(post) {
   return `/posts/${post.data}${post.title.toLowerCase()}`
}

module.exports = { getSlug }
// Posts.js
import { getSlug } from './path/to/shared.js'
此页面是否有帮助?
0 / 5 - 0 等级