๋๋ ์ต๊ทผ์ ์ธ์ด ์๋น์ค๊ฐ ์๋์ ๋ฉ์ถ๊ณ ์ฝ์์ ๋ค์์ด ํ์๋๊ธฐ ์์ํ์์ ์์์ฐจ๋ ธ์ต๋๋ค.
์น๋ช
์ ์ธ ์ค๋ฅ: CALL_AND_RETRY_LAST ํ ๋น ์คํจ - JavaScript ํ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ
๊ฐ๋ ์ธ์ด ์๋น์ค: 4.1.2 ํ์ ์คํฌ๋ฆฝํธ: 2.1.6 ์น๋ช ์ ์ธ ์ค๋ฅ: CALL_AND_RETRY_LAST ํ ๋น ์คํจ - JavaScript ํ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ 1: node::Abort() [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib] 2: node::DLOpen(v8::FunctionCallbackInfo<:value i="9"> const&) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib ] 3: v8::internal::FatalProcessOutOfMemory(char const*) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib] 4: v8::internal::FatalProcessOutOfMemory(char const*) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib] 5: v8::internal::Factory::NewFixedArray(int, v8::internal::PretenureFlag) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode. ๋๋ฆฝ] 6: v8::internal::JSArrayBuffer::Setup(v8::internal::Handle<:internal::jsarraybuffer i="10">, v8::internal::Isolate*, bool, void*, unsigned long, v8::internal::SharedFlag) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib] 7: v8::internal::JSRegExp::New(v8::internal::Handle<:internal::string i="11">, v8::base::Flags<:internal::jsregexp::flag i ="12">) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib] 8: v8::internal::EhFrameIterator::DecodeSLeb128(unsigned char const*, int*) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib] 9: v8::internal::HeapNumber::HeapNumberPrint(std::__1::basic_ostream>&) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib] 10: v8::internal::RegisterConfiguration::AreAliases(v8::internal::MachineRepresentation, int, v8::internal::MachineRepresentation, int) const [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework .framework/Versions/A/Libraries/libnode.dylib] 11: 0x2c0596f843a7 12: 0x2c05971a4765 13: 0x2c0597196a67 [์ ๋ณด - 10:12:40 PM] ์๋ฒ ์ ์์ด ์ข ๋ฃ๋์์ต๋๋ค. ์๋ฒ๊ฐ ๋ค์ ์์๋ฉ๋๋ค.
์ด๊ฒ์ Angular 4.1.1
๋๋ 4.1.2
์
๊ทธ๋ ์ด๋ํ ํ์์ ๊ฒ์
๋๋ค. ์๋ง๋ ๋ค๋ฅธ ์์ธ๋ ์์ฉํ์ ๊ฒ์
๋๋ค.
์ข ์์ฑ์ ์ ๊ทธ๋ ์ด๋ํ๋ฉด ๋ฌธ์ ๊ฐ ์ฝ๊ฒ ํด๊ฒฐ๋ฉ๋๋ค.
cd ~/.vscode/extensions/Angular.ng-template-0.1.3
yarn upgrade @angular/language-service typescript vscode-languageserver
๋๋ ๋ํ Angular.ng-template-0.1.3
์์ deps๋ฅผ ์
๊ทธ๋ ์ด๋ํ์ง๋ง ๊ทธ๊ฒ๋ง์ผ๋ก๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๋๋๋ฆฌ์ง๋ ์์์ต๋๋ค.
cd ~/.vscode/extensions/Angular.ng-template-0.1.3/server
yarn upgrade vscode-languageclient vscode typescript
์์ deps ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํํ ํ ํ์ฅ ์ถ๋ ฅ์์ โโ๋ช ๊ฐ์ง ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ์ผ๋ฉฐ ๋์์ด ๋ ์ ์๋๋ก ์ฌ๊ธฐ์ ์ถ๊ฐํ์ต๋๋ค.
์ค๋ฅ: ๊ธธ์ด < 0
/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:10600 throw new Error("๊ธธ์ด < 0"); ^^ ์ค๋ฅ: ๊ธธ์ด < 0 Object.createTextSpan์์(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:10600:19) TextChange.getTextChangeRange์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2024:44) ScriptVersionCache.getTextChangesBetweenVersions(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2112:80) LineIndexSnapshot.getTextChangeRangeSinceVersion์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2177:31) LineIndexSnapshot.getChangeRange์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2182:21) AcquireOrUpdateDocument(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:74378:133) Object.updateDocumentWithKey์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:74357:20) Object.getOrCreateSourceFileByPath์์ [getSourceFileByPath๋ก] (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:86043:49) tryReuseStructureFromOldProgram(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:67052:28) Object.createProgram์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:66824:14) [์ ๋ณด - 11:19:08 AM] ์๋ฒ ์ฐ๊ฒฐ์ด ๋๊ฒผ์ต๋๋ค. ์๋ฒ๊ฐ ๋ค์ ์์๋ฉ๋๋ค.
TypeError: ์ ์๋์ง ์์ '์ข
๋ฅ' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค.
/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43244 ์ค์์น(๋ ธ๋ ์ข ๋ฅ) { ^^ TypeError: ์ ์๋์ง ์์ '์ข ๋ฅ' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค. Evaluator.evaluateNode์์ (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43244:21) Evaluator.evaluateNode์์ (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43383:34) /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43263:39์์ VisitEachNode์์ (/Users/mafredri/ng2-project/node_modules/typescript/lib/typescript.js:14724:30) Object.forEachChild์์ (/Users/mafredri/ng2-project/node_modules/typescript/lib/typescript.js:14840:24) Evaluator.evaluateNode์์ (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43248:22) /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43317:103์์ Array.map์์(๋ค์ดํฐ๋ธ) Evaluator.evaluateNode์์ (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43317:69) objFromDecorator์์ (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43753:33) [์ ๋ณด - 11:15:20 AM] ์๋ฒ ์ ์์ด ์ข ๋ฃ๋์์ต๋๋ค. ์๋ฒ๊ฐ ๋ค์ ์์๋ฉ๋๋ค.
TypeError: null์ '๋ฉํ๋ฐ์ดํฐ' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค.
/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48425 var _d = this.resolver.getNonNormalizedDirectiveMetadata(directive.reference), ๋ฉํ๋ฐ์ดํฐ = _d.metadata, ์ฃผ์ = _d.annotation; ^^ TypeError: null์ '๋ฉํ๋ฐ์ดํฐ' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค. TypeScriptServiceHost.ensureTemplateMap์์ (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48425:113) TypeScriptServiceHost.getTemplateReferences(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48265:14) LanguageServiceImpl.getTemplateReferences์์ (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:47956:90) /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2689:78์์ ์๊ฐ์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2677:22) Object.getTemplateReferences(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2689:20) Project.updateFileMap์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:788:62) Project.updateGraph์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:806:14) Project.finishGraph์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:798:14) ProjectService.updateConfiguredProject์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1708:25) [์ ๋ณด - 11:14:33 AM] ์๋ฒ ์ฐ๊ฒฐ์ด ๋๊ฒผ์ต๋๋ค. ์๋ฒ๊ฐ ๋ค์ ์์๋ฉ๋๋ค.
์๋ฒ ์ค๋ฅ: ์ ์๋์ง ์์ 'charCount' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค.
์๋ฒ ์ค๋ฅ: ์ ์๋์ง ์์ 'charCount' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค. TypeError: ์ ์๋์ง ์์ 'charCount' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค. LineNode.walk์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2439:39) LineIndex.edit์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2304:27) ScriptVersionCache.getSnapshot(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2086:39) ScriptInfo.snap(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:405:25) LSHost.lineOffsetToPosition(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:649:28) /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1439:86์์ Array.map์์(๋ค์ดํฐ๋ธ) ProjectService.lineOffsetsToPositions(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1439:30) /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/documents.js:151:56์์ TextDocuments.logErrors(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/documents.js:234:13) [์ค๋ฅ - 11:19:44 AM] ์๋ฆผ ์ฒ๋ฆฌ๊ธฐ 'textDocument/didChange' ๋ฉ์์ง์ ํจ๊ป ์คํจ: ์ ์๋์ง ์์ 'charCount' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค.
์๋ฆผ ์ฒ๋ฆฌ๊ธฐ 'textDocument/didChange'๊ฐ ๋ฉ์์ง์ ํจ๊ป ์คํจํ์ต๋๋ค: ์ ์๋์ง ์์ 'charCount' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค.
[์ค๋ฅ - 11:42:51 AM] ์๋ฆผ ์ฒ๋ฆฌ๊ธฐ 'textDocument/didChange' ์คํจ ๋ฉ์์ง: ์ ์๋์ง ์์ 'charCount' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค. /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2431 childCharCount = child.charCount(); ^^ TypeError: ์ ์๋์ง ์์ 'charCount' ์์ฑ์ ์ฝ์ ์ ์์ต๋๋ค. LineNode.walk์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2431:35) LineIndex.edit์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2304:27) ScriptVersionCache.getSnapshot(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2086:39) ScriptVersionCache.latestVersion(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2050:18) LSHost.getScriptVersion(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:542:29) TypeScriptServiceHost.getTemplates(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48312:39) LanguageServiceImpl.getDiagnostics์์ (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:47959:35) /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2686:72์์ ์๊ฐ์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2677:22) Object.getDiagnostics์์ (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2686:20) [์ ๋ณด - 11:42:51 AM] ์๋ฒ ์ ์์ด ์ข ๋ฃ๋์์ต๋๋ค. ์๋ฒ๊ฐ ๋ค์ ์์๋ฉ๋๋ค.
@mafredri ๋ ๋ฒ์งธ ์ฃผ์์ ์ค๋ฅ๋ TypeScript๋ฅผ 2.1 ์ด์์ผ๋ก ์
๋ฐ์ดํธํ๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. editorServices.ts
2.1 ์ด์์ผ๋ก ์
๊ทธ๋ ์ด๋ํ๋ ค๋ฉด ์๋นํ ๋ณ๊ฒฝ์ด ํ์ํฉ๋๋ค. ์ด๊ฒ์ด ์ด ํ๋ฌ๊ทธ์ธ์ด ํ์ฌ 2.1.5๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์
๋๋ค.
1๋ ๋ชจ๋ฅด๋ ์ฒซ๋๊ธ.
ํ๋๊ฐ ์๋ค๋ฉด ํ๋ก์ ํธ์์ @angular/language-service
์ ๋ํ dev ์ข
์์ฑ์ ์ ๊ฑฐํ์ฌ ์ธ์ด ์๋น์ค์ ํฌํจ๋ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋์๊ฐ๋๋ค. ์๋ ๊ฒฝ์ฐ ์ต์ @angular/language-service
์ถ๊ฐํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
editorServices.ts๋ 2.1 ์ดํ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ค๋ฉด ์๋นํ ๋ณ๊ฒฝ์ด ํ์ํฉ๋๋ค. ์ด๊ฒ์ด ์ด ํ๋ฌ๊ทธ์ธ์ด ํ์ฌ 2.1.5๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋๋ค.
@chuckjaz ๋๋
์๋ ๊ฒฝ์ฐ ํ๋ก์ ํธ์์ @angular/language-service์ ๋ํ dev ์ข ์์ฑ์ ์ ๊ฑฐํ์ฌ ์ธ์ด ์๋น์ค์ ํฌํจ๋ ๋ฒ์ ์ฌ์ฉ์ผ๋ก ๋์๊ฐ๋๋ก ํ์ญ์์ค.
๋๋ ๊ทธ๊ฒ์ dev ์์กด์ฑ์ผ๋ก ๊ฐ์ง๊ณ ์์ง๋ง ๋ด PR ๋ธ๋์น๋ ์ ์๋ํ๋ฏ๋ก ์ด์ ๋ฒ์ ์ ์ธ์ด ์๋น์ค๋ก ๋๋๋ฆฌ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํน์ ํด๋์์ ์ด ํ๋ฌ๊ทธ์ธ " Not To "๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํฉ๋๊น? ํ์ฌ ๋ด ํ๋ก์ ํธ์์ ์ฐธ์กฐํ๋ ๋ชจ๋ ๊ณต๊ธ์
์ฒด(html ๋ฐ css) ํ์ผ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๋ค.
๋์์ฃผ์ธ์
์ด ๋ฌธ์ ๋ ํ๋์ด ์์ด ์๋์ผ๋ก ์ ๊ฒผ์ต๋๋ค.
์ ์ฌํ๊ฑฐ๋ ๊ด๋ จ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ญ์์ค.
์๋ ๋ํ ์ ๊ธ ์ ์ฑ ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
_์ด ์์ ์ ๋ด์ ์ํด ์๋์ผ๋ก ์ํ๋์์ต๋๋ค._
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@mafredri ๋ ๋ฒ์งธ ์ฃผ์์ ์ค๋ฅ๋ TypeScript๋ฅผ 2.1 ์ด์์ผ๋ก ์ ๋ฐ์ดํธํ๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค.
editorServices.ts
2.1 ์ด์์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ค๋ฉด ์๋นํ ๋ณ๊ฒฝ์ด ํ์ํฉ๋๋ค. ์ด๊ฒ์ด ์ด ํ๋ฌ๊ทธ์ธ์ด ํ์ฌ 2.1.5๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋๋ค.1๋ ๋ชจ๋ฅด๋ ์ฒซ๋๊ธ.
ํ๋๊ฐ ์๋ค๋ฉด ํ๋ก์ ํธ์์
@angular/language-service
์ ๋ํ dev ์ข ์์ฑ์ ์ ๊ฑฐํ์ฌ ์ธ์ด ์๋น์ค์ ํฌํจ๋ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋์๊ฐ๋๋ค. ์๋ ๊ฒฝ์ฐ ์ต์@angular/language-service
์ถ๊ฐํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.