Node.js で「ReferenceError: primordials is not defined」を修正する方法 質問する

Node.js で「ReferenceError: primordials is not defined」を修正する方法 質問する

'npm install' で Node.js モジュールをインストールし、gulp sass-watchコマンドプロンプトで実行してみました。すると、以下の応答が返されました。

[18:18:32] Requiring external module babel-register
fs.js:27
const { Math, Object, Reflect } = primordials;
                                  ^

ReferenceError: primordials is not defined

以前これを試したことがありますgulp sass-watch:

npm -g install gulp-cli

ベストアンサー1

[email protected]Node.js 12 以降に依存するレガシー プロジェクトを更新するときにも同じ問題が発生しました。

これらの修正により、バージョン に[email protected]オーバーライドすることで Node.js 12 以降を使用できるようになります。graceful-fs^4.2.11

pnpmを使用している場合

pnpmサポートいくつかの依存関係のバージョンを上書きするこれを行うには、pnpmpackage.json ファイルにセクションを追加する必要があります。

{
  "pnpm": {
    "overrides": {
      "graceful-fs": "^4.2.11"
    }
  }
}

yarn v1を使用している場合

糸 v1定義されたバージョンへのパッケージの解決をサポートしますresolutionsにセクションを追加する必要がありますpackage.json:

{
  "resolutions": {
    "graceful-fs": "^4.2.11"
  }
}

ありがとうジャズドこの方法で問題を解決します。

npmを使用している場合

使用している npm のバージョンを確認するには、次のコマンドを実行します。

npm -v

<major>.<minor>.<patch>のようなバージョン番号が返されます8.4.0

graceful-fsバージョンがv8.3.0以上の場合は、以下を追加することでバージョンを上書きできます。セクションoverridespackage.json ファイル内:

{
  "overrides": {
    "graceful-fs": "^4.2.11"
  }
}

それ以外の場合は、npm-force-resolutionsgraceful-fsプレインストール スクリプトとして、package.json ファイルを次のように変更して のバージョンを上書きできるようにします。

{
  "scripts": {
    "preinstall": "npx npm-force-resolutions"
  },
  "resolutions": {
    "graceful-fs": "^4.2.11"
  }
}

npm-force-resolutionsが完了する前に、ファイルを変更して必要なバージョンにpackage-lock.json設定します。graceful-fsinstall

.npmrcプロジェクトでカスタム ファイルを使用しており、そのファイルにプロキシまたはカスタム レジストリのいずれかが含まれている場合は、の一部のバージョンでは現在のフォルダー ファイルが既定で使用されないため、npx npm-force-resolutionsに変更する必要がある場合があります。npx --userconfig .npmrc npm-force-resolutionsnpx.npmrc

問題の起源

この問題は、[email protected] 依存するgraceful-fs@^3.0.0Node.jsモジュールをモンキーパッチしますfs

これはNode.jsのバージョン11.15(バージョン(開発ブランチからのものであり、本番環境では使用しないでください)。

graceful-fs@^4.0.0Node.jsfsモジュールにモンキーパッチを適用しなくなったため、Node.js > 11.15 と互換性があります (バージョン 12、14、16、18、20 でテストされ、動作しています)。

これは永続的な解決策ではありませんが、 に更新する時間がない場合には役立ちますgulp@^4.0.0

おすすめ記事