'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
サポートいくつかの依存関係のバージョンを上書きするこれを行うには、pnpm
package.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以上の場合は、以下を追加することでバージョンを上書きできます。セクションoverrides
package.json ファイル内:
{
"overrides": {
"graceful-fs": "^4.2.11"
}
}
それ以外の場合は、npm-force-resolutions
graceful-fs
プレインストール スクリプトとして、package.json ファイルを次のように変更して のバージョンを上書きできるようにします。
{
"scripts": {
"preinstall": "npx npm-force-resolutions"
},
"resolutions": {
"graceful-fs": "^4.2.11"
}
}
npm-force-resolutions
が完了する前に、ファイルを変更して必要なバージョンにpackage-lock.json
設定します。graceful-fs
install
.npmrc
プロジェクトでカスタム ファイルを使用しており、そのファイルにプロキシまたはカスタム レジストリのいずれかが含まれている場合は、の一部のバージョンでは現在のフォルダー ファイルが既定で使用されないため、npx npm-force-resolutions
に変更する必要がある場合があります。npx --userconfig .npmrc npm-force-resolutions
npx
.npmrc
問題の起源
この問題は、[email protected]
依存するgraceful-fs@^3.0.0
Node.jsモジュールをモンキーパッチしますfs
。
これはNode.jsのバージョン11.15(バージョン(開発ブランチからのものであり、本番環境では使用しないでください)。
graceful-fs@^4.0.0
Node.jsfs
モジュールにモンキーパッチを適用しなくなったため、Node.js > 11.15 と互換性があります (バージョン 12、14、16、18、20 でテストされ、動作しています)。
これは永続的な解決策ではありませんが、 に更新する時間がない場合には役立ちますgulp@^4.0.0
。