回答:
同じエラーが発生しました。ノード12とgulp 3を使用していると思います。その組み合わせは機能しません。https://github.com/gulpjs/gulp/issues/2324
1月の以前の回避策も機能しません。https://github.com/gulpjs/gulp/issues/2246
解決策:gulp 4にアップグレードするか、以前のノードにダウングレードします。
webshot
ノードパッケージを使用した同様の問題。ノードv12に進む前に、エンドで何かを更新する必要があると思います。
v12.1.0
とgulp を使用していますgulp@4.0.2
が、機能しません
v10.x
とv3.x
gulp を試してみましたが、その後魔法が起こりました
gulp@3.9.1
Node.js 12に依存するレガシープロジェクトの更新時に同じ問題が発生しました。
これらの修正により、バージョンにgulp@3.9.1
オーバーライドgraceful-fs
することでNode.js 12を使用できるようになります4.2.3
。
これを含むnpm-shrinkwrap.json
ファイルを作成します。
{
"dependencies": {
"graceful-fs": {
"version": "4.2.3"
}
}
}
このnpm-shrinkwrap.json
ファイルをコミットします。次にnpm install
、npm-shrinkwrap.json
ファイルを更新する実行します。
残念ながら、このソリューションは、npm install
再度使用すると機能しなくなります。以下の他のソリューションを参照してください。
Yarn v1 は、定義されたバージョンへのパッケージの解決をサポートしています。にresolutions
セクションを追加する必要がありますpackage.json
:
{
// Your current package.json contents
"resolutions": {
"graceful-fs": "4.2.3"
}
}
ありがとう@jazdこの問題を解決するためのこの方法をにます。
npm-force-resolutions
プリインストールスクリプトとして使用すると、yarn v1と同様の結果を得ることができます。package.jsonを次のように変更する必要があります。
{
// Your current package.json
"scripts": {
// Your current package.json scripts
"preinstall": "npx npm-force-resolutions"
},
"resolutions": {
"graceful-fs": "4.2.3"
}
}
npm-force-resolutions
が完了する前に、package-lock.json
ファイルを変更してgraceful-fs
目的のバージョンに設定しますinstall
。
カスタム使用している場合は.npmrc
、プロジェクト内のファイルを、それがプロキシまたはカスタムレジストリのいずれかが含まれている、あなたは変更する必要があるnpx npm-force-resolutions
にnpx --userconfig .npmrc npm-force-resolutions
今のようなので、npx
現在のフォルダを使用しない.npmrc
、デフォルトでファイルを。
この問題は、事実に起因gulp@3.9.1
依存上graceful-fs@^3.0.0
のNode.jsのmonkeypatchesどのfs
モジュールを。
これは、バージョン11.15(これは開発ブランチのバージョンであり、本番環境では使用しないでください)までNode.jsで機能していました。
graceful-fs@^4.0.0
Node.js fs
モジュールのモンキーパッチを行わなくなりました。これにより、Node.js> 11.15と互換性があります。
これは永続的なソリューションではありませんが、に更新する時間がない場合に役立ちますgulp@^4.0.0
。
npm install
して再生成したpackage-lock.json
場合npm-shrinkwrap.json
、この依存関係のロックに失敗したようです。を再実行した後もnpm install --no-save
、生成されたものは、package-lock.json
欠落している依存関係をインストールするnpmを示しています。
次のコマンドを使用して、ノードv11.15.0をインストールします。
npm install -g n
sudo n 11.15.0
解決します
ReferenceError:原始はノードで定義されていません
@Terje Norderhaugからの引用@Tom Corelisの回答。
次の手順に従ってください。私はWindows 10を使用していますが、完全に機能しました。
package.json
作成したのと同じディレクトリ内npm-shrinkwrap.json
: {
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
実行するとnpm install
、心配はいりませんnpm-shrinkwrap.json
。大量のコンテンツで更新されます。
実行gulp
してプロジェクトを開始します。
次のコマンドを使用してnode v11.15.0
、およびをインストールしgulp v3.9.1
ます。
npm install -g n
sudo n 11.15.0
npm install gulp@^3.9.1
npm install
npm rebuild node-sass
この問題を解決します:
ReferenceError: primordials is not defined in node
NVMを使用して、使用しているノードのバージョンを管理し、次のコマンドを実行するとうまくいきました。
$ cd /to/your/project/
$ nvm install lts/dubnium
$ nvm use lts/dubnium
$ yarn upgrade # or `npm install`
10
、コード名の代わりに使用してください。
Gulp 3.9.1はNode v12.xxでは機能しません。Gulp4.0.2にアップグレードする場合、新しい構文(Series&Parallels)でgulpfile.jsを完全に変更する必要があります。したがって、最善の策は、Node V 11.xxにダウングレードすることです。11.15.0でうまく動作しました。ターミナルで次のコードを使用するだけで:
nvm install 11.15.0
nvm use 11.15.0 #just in case it didn't automatically select the 11.15.0 as the main node.
nvm uninstall 13.1.0
npm rebuild node-sass
乾杯!
同じエラーを持っていたし、最終的に、すべてのパッケージを更新したときは、言及したことを修正し、同じノードエンジンのバージョンとNPMバージョンではpackage.json
、それは私のローカルの作業システムであるとして。
"engines": {
"node": "10.15.3",
"npm": "6.9.0"
}
herokuにデプロイするときにこのエラーが発生しました。
Herokuサポートのチェックアウトについて
ノード12にアップグレードした後に発生したため、ノードの安定版へのダウングレードでこの問題が修正されました
sudo n 10.16.0
n
最初に必ずインストールしてください: 'npm install -g n'
Gulp 3.*
はNode 12.*
以上では機能しません。ノードをダウングレードするか、Gulpをアップグレードする必要があります。
時間がない場合は、Nodeをv11。*以下にダウングレードしてください。新しい機能が必要で、壊れた依存関係の負荷を修正する時間がある場合は、Gulpを4. *以上にアップグレードしてください!
他の人がすでに述べたように、Gulp 3.*
はNode 12
以上ではサポートされていないため、Nodeのバージョンを11.*
以下にダウングレードするか、Gulpをにアップグレードする必要があります4.0
。
最良のオプションは、最終的には、どのくらいの時間を費やすかに依存します。Gulpをアップグレードすると、よりクリーンなgulpfileと、タスクを直列または並列に実行させる組み込みの制御の利点がもたらされるだけでなく、gulpfileを新しい構文に書き換えることにも依存します。可能性があります(読み取り:おそらく-このコメントの終わりを参照)いくつかの依存関係との競合を引き起こします。
これは最も簡単で迅速なオプションです。特にnまたはnvmを使用する場合、これらを使用すると、非常に迅速にインストールし、ノードのバージョンを切り替えることができます。
n 10.16.0
nvm install 10.16.0
これを実行した後、npm依存関係を再構築するか、フォルダーとファイルの両方を削除して、依存関係を再インストールする必要がある場合があります。ただし、既存のノードバージョンに戻すだけの場合は、おそらく問題ありません。node_modules
package-lock.json
上記のように、これはより時間のかかるタスクですが、長期的にはメリットがあるかもしれません。たとえば、Node 12
はESモジュールのネイティブサポート(実験的なフラグの後ろ)とNodeでの完全サポートを導入してい13
ます。
それを使用するためにノードをアップグレードし、Gulpをアップグレードする必要がある場合があります。または、Gulp 4を使用することの利点を単に望んでいるかもしれません。Gulp4は、タスクの作成をより効率的に制御できるからです。
これについてはすでに多くの記事があるので、詳細についてはこれ以上詳しく説明しませんが、繰り返しますが、これは簡単な仕事ではありません。プロジェクトのサイズによっては、顕著な書き直しが必要になる場合があり、依存関係が壊れる可能性があります。時間がない場合は、少なくとも一時的にノードをダウングレードすることを選択する必要があります。
私のように、すでにGulp 4+を使用していて(私は4.0.2
もともとNode 10でGulpを使用していた)、最近アップグレードした(私はNode 13.8.0
)のに問題が解決しない場合は、依存関係が古いバージョンのGulpがパイプラインに巻き込まれています。
私の場合、gulp-combine-mq
Gulpを使用して依存関係がありました3.9.*
。gulpfileでこのタスクを無効にすると、Gulpを再度実行できるようになりました。
これが発生した場合、いくつかのオプションがあります。
言うまでもなく、古いバージョンのGulpに依存するプラグインがいくつかある場合-特にこれらのプラグインがアプリケーションに不可欠である場合-ここで、Gulpのアップグレードに膨大な時間がかかる可能性があります(そのため、上記の警告が出ます)。
これが発生した場合は、少なくともパッチを発行できるようになるまで、ノードをダウングレードすることをお勧めします。
このエラーは、Node(12)の新しいバージョンとgulpの古いバージョン(4未満)が原因です。
ノードおよびその他の依存関係のダウングレードは推奨されません。package.json
すべての依存関係の最新バージョンを取得するファイルを更新することで、これを解決しました。これには、を使用しますnpm-check-updates
。package.json
すべての依存関係の最新バージョンでを更新するモジュールです。
リファレンス:https : //www.npmjs.com/package/npm-check-updates
npm i -g npm-check-updates
ncu -u
npm install
ほとんどの場合、gulpfile.js
次のようにを更新する必要があります。
リファレンス:https : //fettblog.eu/gulp-4-parallel-and-series/#migration
前:
gulp.task(
'sass', function () {
return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])
....
}
);
Other config...
gulp.task(
'watch', function () {
gulp.watch(sourcePath + '/sass/**/*.scss', ['sass']);
}
);
後:
gulp.task('sass', gulp.series(function(done) {
return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])
...
done();
}));
Other config...
gulp.task(
'watch', function () {
gulp.watch(sourcePath + '/sass/**/*.scss', gulp.series('sass'));
}
);
Windows 10でこのエラーが発生しました。ローミングプロファイルが破損していることが判明しました。
npm ERR! node v12.4.0
npm ERR! npm v3.3.12
npm ERR! primordials is not defined
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
C:\Users\{user}\AppData\Roaming\npm
フォルダを削除すると問題が解決しました。
次の手順に従ってください。npm installを複数回実行したり、他のモジュールをインストールしたり、プロジェクトをアーティファクトにパブリッシュしたりすることで、完全に機能しました。
package.jsonがあるのと同じディレクトリに、次の内容のnpm-shrinkwrap.jsonファイルを作成します。
{
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
npm installを実行します。心配しないでください。npm-shrinkwrap.jsonが大量のコンテンツで更新されます。package.jsonスクリプトオプションを更新して、この更新を削除しましょう。
"scripts": {
"preshrinkwrap": "git checkout -- npm-shrinkwrap.json",
"postshrinkwrap": "git checkout -- npm-shrinkwrap.json"
}
これでnpm installを実行できるようになり、npm-shrinkwrap.jsonはそのままの状態で永久に機能します。
これは遅くなったかもしれませんが、最新のgulp ^ 4.0を使用しながらNode v12を維持することにまだ興味がある人は、次の手順に従ってください。
以下を使用してコマンドラインインターフェイスを更新します(念のため)。
npm i gulp-cli -g
gulp
package.jsonの下の依存関係セクションを追加/更新します
"dependencies": {
"gulp": "^4.0.0"
}
package-lock.json
ファイルを削除する
node_modules
フォルダを削除する
最後に、実行npm i
して、Gulp ^ 4.0の正しいパラメーターを使用して、新しいnode_modulesフォルダーとpackage-lock.jsonファイルをアップグレードおよび再作成します。
npm i
注 Gulp.js 4.0では、Gulp 3で使用されている配列メソッドの代わりに、タスクを組み合わせるためのseries()
およびparallel()
メソッドが導入されているため、古いgulpfile.js
スクリプトでエラーが発生する場合と発生しない場合があります。
これらの新機能の適用の詳細については、このサイトが実際に正当化しています:https : //www.sitepoint.com/how-to-migrate-to-gulp-4/
(それが役に立った場合は、ご飯を残してください)
gulp-cli
ため?私はあなたの手順に従い、すべてを最初に機能させました。しかし、それをアンインストールしgulp-cli
(それがどこで使用されているのかわからなかったため)、すべてが引き続き機能しました。しかし、私はノードv12.9.1
とGulpで再び稼働しているので、答えてくれてありがとう4.0.2
!
GulpはNodejsバージョン11以降で問題を引き起こしています。現在のノードバージョンをアンインストールし、v10.15.1を再インストールします。ここにそのバージョンのリンクがあります。これは私を助け、あなたの問題も解決します。
4.0.1にアップグレードして、必ずhttps://fettblog.eu/gulp-4-parallel-and-series/#migrationを移行してください
をご利用の方へyarn
。
yarn global add n
n 11.15.0
yarn install # have to install again
ADOS CIビルドで同じ理由で同じエラーが発生した場合:
この質問は、私が助けを求めて見つけた最初のものでした。ADOS CIビルドパイプラインがあり、最初のNode.jsツールインストーラータスクを使用してNodeをインストールします。次に、npmタスクを使用してgulpをインストールします(npm install -g gulp)。次に、次のGulpタスクがgulpfile.jsからdefault-taskを実行します。そこにはいくつかのガチャガチャなものが入っています。
Node.jsツールを変更して、古いノードではなく12.x最新のノードをインストールし、最新のgulpバージョンが4.0.2だった場合。結果は、質問で説明されているのと同じエラーでした。
この場合、Alphonse R. DsouzaとAymen Yaseenによってすでに提案されているように、node.jsを最新の11.xバージョンにダウングレードすることがうまくいきました。この場合、提案されたコマンドを使用する必要はありませんが、Node.jsツールインストーラーのバージョン仕様を11.xの最新のノードバージョンに設定するだけです。
インストールされて機能しているNode.jsの正確なバージョンは11.15.0でした。Gulpをダウングレードする必要はありませんでした。
また、Gulp 3を使用してノード12/13でエラーが発生し、ノード11に移動しても機能しました。
Node.jsのバージョンをから12.14.0
にダウングレードし10.18.0
て再インストールすることで解決しましたnode_modules
。
まず、NPMのインストールが問題ではないことを確認することをお勧めします。次に、nodeとgulpのバージョンをダウングレードします。ノード10.16.1とgulp 3.9.1を使用しました。
あなたの気分をダウングレードするには、あなたが試すことができます
npm install gulp@^3.9.1