How solve issue TypeError: strings.slice(...).reduce is not a function?

How solve issue TypeError: strings.slice(...).reduce is not a function?

我最近发现了 Gatsby,我想将这个模板用于我自己的网站: https://github.com/toboko/gatsby-starter-fine

下载时,设法 运行 它 http://localhost:8000/ 但我得到这个错误,我可以逃避:

TypeError: strings.slice(...).reduce 不是函数

我在这里添加了我的存储库,所以你也可以看看:https://github.com/melariza/gatsby-starter-fine

你能看一下并帮助修复吗?

错误截图: enter image description here

这是错误文本:

TypeError: strings.slice(...).reduce is not a function
css
/Users/mga/Sites/gatsby-starter-fine/.cache/loading-indicator/style.js:5
  2 | 
  3 | function css(strings, ...keys) {
  4 |   const lastIndex = strings.length - 1
> 5 |   return (
  6 |     strings.slice(0, lastIndex).reduce((p, s, i) => p + s + keys[i], ``) +
  7 |     strings[lastIndex]
  8 |   )
View compiled
Style
/Users/mga/Sites/gatsby-starter-fine/.cache/loading-indicator/style.js:14
  11 | const Style = () => (
  12 |   <style
  13 |     dangerouslySetInnerHTML={{
> 14 |       __html: css`
  15 |         :host {
  16 |           --purple-60: #663399;
  17 |           --gatsby: var(--purple-60);
View compiled
▶ 18 stack frames were collapsed.
(anonymous function)
/Users/mga/Sites/gatsby-starter-fine/.cache/app.js:165
  162 |   dismissLoadingIndicator()
  163 | }
  164 | 
> 165 | renderer(<Root />, rootElement, () => {
  166 |   apiRunner(`onInitialClientRender`)
  167 | 
  168 |   // Render query on demand overlay
View compiled

我猜这个问题与 Node 及其依赖项有关。存储库不是 official Gatsby starter and the last commit dates from 3 years ago. Gatsby is now on version 4.14 while the starter is on ^2.0.50。过去 3 年仅在 Gatsby 中发生了两个主要版本,所以想象一下其余的依赖项。

启动器不包含 .nvmrc 文件或 package.json 中的 engine 属性,因此运行该项目的节点版本未知。请注意,如果您克隆或分叉该项目,您将有很多已弃用的依赖项,并且您将需要进行多次迁移 (from v2 to v3 and from v3 to v4)。

所以我的建议是拒绝该存储库并使用其中一位官员。如果这不是一个选项,请尝试使用 Node 版本,从 12 开始,每次升级或降级版本时重新安装 node_modules