3

Gatsby サイトを実行しようとしていますが、実行すると次のnpm run developエラーが発生します。

> gatsby develop

 ERROR #10123  CONFIG

We encountered an error while trying to load your site's gatsby-config. Please fix the error x try again.



  Error: D:\Coding\web-blog\src\infra\feed.js:28
  description: post.intro ?? post.description,
                           ^

コード:

const item = {
                title: sanitizeTitle(post.title),
                description: post.intro ?? post.description,
                url: `${site.siteMetadata.siteUrl}/${post.slug}`,
                guid: `${site.siteMetadata.siteUrl}/${post.slug}`,
                categories: post.tags,
                author: site.siteMetadata.author,
                date: post.date,
            }

??JavaScriptの演算子とは何ですか? 新しい言語機能ですか?

4

3 に答える 3

4

nullish 合体演算子 ( ??) ECMAScript 2020 の機能です ( TC39 提案を参照)。バベルの設定を変更するgatsby-plugin-nullish-coalescing-operatorか、プラグインをインストールすることで追加できます。

最初のバージョンを選択した場合.babelrcは、プロジェクトのルートに a を追加し、以下を入力します。

{
  "plugins": [
    ["@babel/plugin-proposal-nullish-coalescing-operator"]
  ],
  "presets": [
    [
      "babel-preset-gatsby",
      {
        "targets": {
          "browsers": [">0.25%", "not dead"]
        }
      }
    ]
  ]
}

@babel/plugin-proposal-nullish-coalescing-operator注:依存関係をインストールする必要があります。

Javascriptのこの演算子は何ですか?

空合体演算子 ( ??) は、左がnullまたはの場合、右の値を使用しますundefined。OR 演算子 ( ) の主な違いは、、またはの値||で使用されているときにエラーが発生する可能性がある偽の値にあります ( 、などの偽の値は他にもありますが、これらは一般的なものです)。そう:""0false-0NaN

description: post.intro ?? post.description,

post.introそれが存在する限り使用し、それ以外の場合 (またはの場合)post.introを使用します。nullundefinedpost.description

于 2021-02-10T14:39:36.473 に答える
3

ファイルとプラグイン コード (または必要なコード) は、gatsby-config.jsGatsby がロードする前に Babel によってコンパイルされないため、使用する構文は、インストールした Node.js のバージョンでサポートされている必要があります。オペレーターは Node.js 14+ でサポートされ??いるようです。実行して Node のバージョンを確認してくださいnode --version

Node をアップグレードする私のお気に入りの方法 (あなたがする必要があると推測しています) は、https: //www.npmjs.com/package/n を使用することです。

于 2021-02-11T02:18:10.103 に答える