始める前に-チェックリスト
説明
発生したバグの簡単な説明。
行を追加すると
create-react-appで新しいアプリを作成し、npm react-pdfで追加した直後、
そのようなreact-pdfからインポートする場合:
import { Document } from "react-pdf"
私のアプリはもうコンパイルできません。
再現する手順
動作を再現する手順:
create-react-appを使用して新しいアプリを作成しますnpx create-react-app test-react-pdf
react-pdfをインストールするnpm install react-pdf
src/App.js
react-pdfからのインポートを追加しますimport { Document } from "react-pdf"
npm startを実行すると、次のように表示されます。
<--- Last few GCs --->
[47073:0x102808000] 31515 ms: Scavenge 1382.5 (1423.4) -> 1381.9 (1423.9) MB, 4.6 / 0.0 ms (average mu = 0.125, current mu = 0.063) allocation failure
[47073:0x102808000] 31519 ms: Scavenge 1382.7 (1423.9) -> 1382.1 (1424.4) MB, 3.3 / 0.0 ms (average mu = 0.125, current mu = 0.063) allocation failure
[47073:0x102808000] 31524 ms: Scavenge 1383.2 (1424.4) -> 1382.6 (1424.9) MB, 3.1 / 0.0 ms (average mu = 0.125, current mu = 0.063) allocation failure
<--- JS stacktrace --->
==== JS stack trace =========================================
0: ExitFrame [pc: 0x1d21277dbe3d]
Security context: 0x2cd62ef9e6e9 <JSObject>
1: SourceMapConsumer_allGeneratedPositionsFor [0x2cd6b4a57591] [/Users/mypcname/Dev/test-react-pdf/node_modules/@babel/core/node_modules/source-map/lib/source-map-consumer.js:~178] [pc=0x1d212805103b](this=0x2cd682a82291 <BasicSourceMapConsumer map = 0x2cd6d22b6131>,aArgs=0x2cd638193081 <Object map = 0x2cd6d22b5529>)
2: /* anonymous */(aka /* a...
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0x10003d035 node::Abort() [/usr/local/bin/node]
2: 0x10003d23f node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
3: 0x1001b8e15 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
4: 0x100586d72 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
5: 0x100589845 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/usr/local/bin/node]
6: 0x1005856ef v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/bin/node]
7: 0x1005838c4 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]
8: 0x10059015c v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
9: 0x1005901df v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
10: 0x10055fb24 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/usr/local/bin/node]
11: 0x1007e7e04 v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
12: 0x1d21277dbe3d
13: 0x1d212805103b
また、問題のあるリポジトリを作成しますhttps://github.com/ditiz/pdf-viewer
それを使用するには:
git clone https://github.com/ditiz/pdf-viewer.git
npm install
npm start
予想される行動
あなたは何が起こると思っていましたか?
アプリをクラッシュさせることなくreact-pdfを使用できます
追加情報
私はより多くのRAMを使用しようとしました:
react-scripts --max_old_space_size=4096 start
何も変わらない
必要に応じて、問題の説明に役立つスクリーンショット(できればブラウザコンソールを開いた状態)と問題のあるファイルを追加します。
環境
react-scripts3.3.0にアップグレードしたときに同じエラーが発生しました。 .env.developmentファイルに以下を追加すると、実行されます。
GENERATE_SOURCEMAP=false
この問題は、VSCodeデバッガーがCRAアプリのnode_modules内のコードをデバッグできるようにするためのCreate ReactAppへの最近の変更が原因であると思われます。
見る:
https://github.com/facebook/create-react-app/pull/7022/files
上記の変更を実験的に元に戻すと、問題は解決しました。 もちろん、これは問題を解決するための実行可能な方法ではありません。
craco(Create React App Configuration Override)を使用して問題を回避する方法があるのだろうか?
他のReactコンポーネントにもこの問題があるのだろうか?
Create ReactAppに問題があります。 https://github.com/facebook/create-react-app/issues/8130を参照してください。問題を報告しているユーザーはreact-pdfを使用していませんが、pdfjs-distを使用しています。
彼らは追加することによって一時的な修正を見つけました:
react-scripts --expose-gc --max-old-space-size=8192
package.jsonのスクリプトに。
これは私たちにも役立ちました。
からコンポーネントをインポートするとimport { Document, Page } from 'react-pdf/dist/entry.webpack';
すべてが正常に機能しています。
このインポートは、レンダリング作業を別のスレッドに委任し、メモリ割り当て制限の問題を明らかに修正します。
これがお役に立てば幸いです:)。
これが私のパッケージjsonです
{
"name": "pdf-2-wc",
"version": "0.1.0",
"private": true,
"dependencies": {
"@material-ui/core": "^4.8.1",
"@material-ui/icons": "^4.5.1",
"@material-ui/lab": "^4.0.0-alpha.37",
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.4.0",
"@testing-library/user-event": "^7.2.1",
"@types/jest": "^24.0.25",
"@types/node": "^12.12.22",
"@types/react": "^16.9.17",
"@types/react-dom": "^16.9.4",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-scripts": "3.3.0",
"react-pdf": "^4.1.0",
"typescript": "^3.7.4",
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
typescript
を使用してcra
スピンアップします。
私がそれを殺すまで、それはStarting the development server...
座って回転します。 私はしなければならなくなった。
最終的にパッケージを削除し、 script
タグを使用してindex.htmlファイルからlibをインポートしました。
使ってます
"react": "^16.12.0", "react-dom": "^16.12.0", "react-pdf": "^4.1.0",
これを乗り越えることはできません...上記のすべてを試しました...
私が言及しなかった唯一のことは:
react-scripts3.3.0にアップグレードしたときに同じエラーが発生しました。 .env.developmentファイルに以下を追加すると、実行されます。
GENERATE_SOURCEMAP=false
.env.developemtはどこにありますか
@ vammu920 .env.development
はプロジェクトのルートにある必要があります(作成する必要がある場合があります)。
また、それはstart
のみ使用されると思います; build
で機能するように、同じ内容で.env.production
を作成する必要があります。
私はこのソリューションをテストしていませんが、それは彼らがどこに行くのかについての私の理解です。
これにも出くわした。 https://github.com/wojtekmaj/react-pdf/issues/496#issuecomment -566200248提案は機能しましたが、ソースマップがブラウザーでのデバッグに役立つため、デバッグが少し難しくなることは明らかです...
react-scripts3.3.0にアップグレードしたときに同じエラーが発生しました。 .env.developmentファイルに以下を追加すると、実行されます。
GENERATE_SOURCEMAP=false
それはすごい男だ、私は何時間も立ち往生している。 ありがとうございました。
地獄屋すべて....
Create ReactAppに問題があります。 参照: facebook / create-react-app#8130問題を報告しているユーザーは、react-pdfを使用していませんが、pdfjs-distを使用しています。
彼らは追加することによって一時的な修正を見つけました:
react-scripts --expose-gc --max-old-space-size=8192
package.jsonのスクリプトに。これは私たちにも役立ちました。
素晴らしいヒント!!!!! 現在作業中のプロジェクトで同じエラーが発生し、スクリプト>テストでこのコマンドを適用しました。 これで、すべてが完全に実行されます。 ありがとう兄貴!
react-scripts3.3.0にアップグレードしたときに同じエラーが発生しました。 .env.developmentファイルに以下を追加すると、実行されます。
GENERATE_SOURCEMAP=false
GENERATE_SOURCEMAP=false
をbuild
コマンド、つまり"GENERATE_SOURCEMAP=false react-scripts build"
に追加すると、Netlifyで以前に失敗していたアプリが修正されました
react-scripts3.3.0にアップグレードしたときに同じエラーが発生しました。 .env.developmentファイルに以下を追加すると、実行されます。
GENERATE_SOURCEMAP=false
私と一緒に働かない:(
falseに設定すると、本番ビルドのソースマップは生成されません。 これにより、一部の小型マシンでのメモリ不足(OOM)の問題が解決されます。
.envのCRAの場合
GENERATE_SOURCEMAP = false
webpack構成の場合
devtool:false
私が行っているもう1つの解決策は、react-scripts3.2にダウングレードすることです。
最も参考になるコメント
react-scripts3.3.0にアップグレードしたときに同じエラーが発生しました。 .env.developmentファイルに以下を追加すると、実行されます。
GENERATE_SOURCEMAP=false