リソースジェネレーターでこのエラーが発生します。Error: end() has already been called, so it's too late to start piping
このエラーに悩まされています。リソースを生成しようとすると表示されます:
PS F:\Desenvolvimento\Ionic\Divas> ionic cordova resources ios -f
√ Collecting resource configuration and source images - done!
√ Filtering out image resources that do not need regeneration - done!
√ Uploading source images to prepare for transformations: 2 / 2 complete - done!
- Generating platform resources: 8 / 32 complete
C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\node_modules\superagent\lib\node\index.js:859
throw Error("end() has already been called, so it's too late to start piping");
^
Error: end() has already been called, so it's too late to start piping
at Response.response.pipe (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\node_modules\superagent\lib\node\index.js:859:13)
at Request.req.type.send.on.res (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\lib\integrations\cordova\resources.js:166:25)
at Request.emit (events.js:182:13)
at Request._emitResponse (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\node_modules\superagent\lib\node\index.js:862:8)
at ClientRequest.req.once.res (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\node_modules\superagent\lib\node\index.js:412:10)
at Object.onceWrapper (events.js:273:13)
at ClientRequest.emit (events.js:187:15)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:556:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17)
at TLSSocket.socketOnData (_http_client.js:442:20)
私のシステム:
Ionic:
ionic (Ionic CLI) : 4.7.1 (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.0
Cordova:
cordova (Cordova CLI) : not installed
Cordova Platforms : Android 6.3.0
Cordova Plugins : cordova-plugin-ionic-webview 1.1.1, (and 8 other plugins)
System:
NodeJS : v10.15.0 (C:\Program Files\nodejs\node.exe)
npm : 6.5.0
OS : Windows 10
画像のサイズが正しくないようです。より大きなサイズの新しい画像を作成しましたが、うまくいきました。それについてのメッセージがなかったのは奇妙です。
まったく同じエラーが発生しました。私のicon.png(私が作成したもの)が1024x916であることに気づきました。私はそれを正確に1024x1024にサイズ変更しましたが、今は機能します!!!
スプラッシュスクリーンは2732×2732pxである必要があります(ここを参照してください: https://ionicframework.com/docs/cli/cordova/resources/ )
ソースアイコンは、理想的には1024x1024px以上で、resources/icon.pngに配置する必要があります。スプラッシュ画面のソース画像は、理想的には2732×2732px以上で、resources/splash.pngに配置する必要があります。
サイズを変更するだけ
次に実行します:-
ドキュメントのとおり アイコンのソース画像は、理想的には1024x1024px以上で、resources/icon.pngに配置する必要があります。スプラッシュ画面のソース画像は、理想的には2732×2732px以上で、resources/splash.pngに配置する必要があります。
ionicのバージョンに問題があり、リソース生成の正確なエラーが記録されていません。これはまだ既知のバグではないと思います。
現時点では、npm i -g ionic@3
を実行してから、コマンドを再度実行できます。これにより、エラーメッセージが表示されます。完了したら、npm i -g ionic
を再度実行して、Ionic 4.に更新します。
Linuxでも同じエラーが発生しました。
私の新しいアイコンはアルファチャネル(私の間違い)を使用しており、このエラーが発生しました。このスレッドを見たとき、私はこのツールが非常に賢明である可能性があることを理解しました。私のアイコン(新旧)は512 * 512でした。私のspashは2300 * 2400でした。 =>すべての画像を正しいサイズにしても効果がありませんでした。 gimpを使用して私のイメージを「平坦化」することが解決策でした。
私の結論:画像でアルファチャネルを使用しない
リソースからsplash.pngとicon.pngファイルを削除してから、最初に要件に従ってスプラッシュとアイコンの画像を変換します ここにリンクの説明を入力 次に、変換された画像をリソースディレクトリにコピーして置き換えてから、イオンコルドバリソースのみプラットフォームを追加する必要はありませんionicは自動的にリソースを作成します。