NativeScript / NativeScript/nativescript-cli

Unable to Build after Upgrade - JS Heap Error

未關閉
#5,361 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
JavaScript
星號
1.1k
分支
204
平均合併
1 天 9 小時
30 天內合併 PR
8

描述

Environment
Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):

  • CLI: 6.8.0
  • Cross-platform modules: 6.5.15 (tns-core-modules)
  • Android Runtime: 6.5.3
  • iOS Runtime: Not installed
  • Plugin(s):

Describe the bug
I had an existing project running in the old version of {N} 4.1.3. I ran through the upgrade instructions from here https://docs.nativescript.org/releases/upgrade-instructions
After i finished all of them tried to run tns build android and it seem to finished 1 time but now all i get is a Javascript heap error every time i try to build the application. I even tried updating all my plugins to their respective latest versions

** Error Message **

Preparing project...

<--- Last few GCs --->

[6292:000001EBC9C4CFF0]   776738 ms: Scavenge 3694.2 (4116.4) -> 3685.8 (4116.7) MB, 203.2 / 0.0 ms  (average mu = 0.345, current mu = 0.375) allocation failure
[6292:000001EBC9C4CFF0]   776785 ms: Scavenge 3695.4 (4116.7) -> 3689.8 (4117.2) MB, 19.1 / 0.0 ms  (average mu = 0.345, current mu = 0.375) allocation failure


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 00007FF6CF7DB3BD]
Security context: 0x025fd44008d1 <JSObject>
    1: walkFunctionExpression [00000071D731B649] [F:\GLSS\Clients\Oversii\MobileApps\NativeScript\Patrolman_Mobile_App\node_modules\webpack\lib\Parser.js:~946] [pc=00000366A1834CA5](this=0x01128b1f66a9 <Tapable map 
= 000000534C2CD6D9>,0x00d7345200f1 <Node map = 00000211E55FDCE9>)
    2: walkExpression [00000071D731B531] [F:\GLSS\Clients\Oversii\MobileApps\...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 00007FF6CEBC5EBF napi_wrap+114095
 2: 00007FF6CEB70B46 v8::base::CPU::has_sse+66998
 3: 00007FF6CEB71946 v8::base::CPU::has_sse+70582
 4: 00007FF6CF386E4E v8::Isolate::ReportExternalAllocationLimitReached+94
 5: 00007FF6CF36EF21 v8::SharedArrayBuffer::Externalize+833
 6: 00007FF6CF23B18C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436
 7: 00007FF6CF2463C0 v8::internal::Heap::ProtectUnprotectedMemoryChunks+1312
 8: 00007FF6CF242EE4 v8::internal::Heap::PageFlagsAreConsistent+3204
 9: 00007FF6CF2386E3 v8::internal::Heap::CollectGarbage+1283
10: 00007FF6CF236D54 v8::internal::Heap::AddRetainedMap+2452
11: 00007FF6CF25809D v8::internal::Factory::NewFillerObject+61
12: 00007FF6CEFBE1E1 v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+1665
13: 00007FF6CF7DB3BD v8::internal::SetupIsolateDelegate::SetupHeap+546637
14: 00000366A1834CA5
Executing webpack failed with exit code 134.

Additional context
here is a copy of my package.json dependancies after all the steps

"dependencies": {
   "moment": "^2.21.0",
   "moment-timezone": "^0.5.14",
   "nativescript-appversion": "^1.4.4",
   "nativescript-background-http": "^4.2.1",
   "nativescript-camera": "^4.5.0",
   "nativescript-downloader": "^2.1.5",
   "nativescript-filterable-listpicker": "^2.2.6",
   "nativescript-fontawesome": "^1.0.0",
   "nativescript-geolocation": "^5.1.0",
   "nativescript-google-maps-sdk": "^2.9.1",
   "nativescript-insomnia": "^1.2.3",
   "nativescript-loading-screen": "^1.0.6",
   "nativescript-locate-address": "^1.0.3",
   "nativescript-sqlite": "^2.6.4",
   "nativescript-sqlite-commercial": "file:nativescript-sqlite-commercial-1.4.3.tgz",
   "nativescript-theme-core": "^2.0.24",
   "nativescript-ui-listview": "^8.2.0",
   "nativescript-ui-sidedrawer": "^8.0.1",
   "tns-core-modules": "^6.5.15"
 },
 "devDependencies": {
   "babel-traverse": "6.4.5",
   "babel-types": "6.4.5",
   "babylon": "6.4.5",
   "copy-webpack-plugin": "~4.3.0",
   "css-loader": "~0.28.7",
   "eslint": "~4.9.0",
   "extract-text-webpack-plugin": "~3.0.2",
   "lazy": "1.0.11",
   "nativescript-dev-sass": "~1.3.5",
   "nativescript-dev-webpack": "^0.9.2",
   "nativescript-worker-loader": "~0.8.1",
   "raw-loader": "~0.5.1",
   "resolve-url-loader": "~2.2.1",
   "sass-loader": "~6.0.6",
   "uglifyjs-webpack-plugin": "~1.1.6",
   "webpack": "~3.10.0",
   "webpack-bundle-analyzer": "^2.9.1",
   "webpack-sources": "~1.1.0"
 }
}

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

首先,使用回報的 NativeScript CLI 6.8.0、webpack 3.10.0 和 nativescript-dev-webpack 0.9.2 版本重現 tns build android。檢查 node_modules/webpack/lib/Parser.js 附近的 webpack 建置路徑,並判定回報的堆積錯誤是此專案特有的,還是 CLI 建置程序特有的;當 Android 建置在沒有 JavaScript 堆積錯誤的情況下完成時,即視為完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
android, javascript, webpack
領域
build-system, cli, mobile-dev
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
需要釐清
新手友好度
20/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。