vscode-ng-language-service: TypeError: Cannot read property 'version' of null
Hello all, I’ve been getting this error lately when opening/saving ts files :
Search path: /Users/julien/Documents/web/faucon-rouge/client/apps/front-app/src/app/pages/articles-page
Failed to read JSON file /Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/common/locales/fr.metadata.json
Config file name: /Users/julien/Documents/web/faucon-rouge/client/tsconfig.json
Angular Language Service: 5.0.1
TypeScript: 2.4.2
Error for getTemplateRefrences:
TypeError: Cannot read property 'version' of null
at readMetadataFile (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:38646:28)
at readMetadata (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:38615:25)
at ReflectorHost.getMetadataFor (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:56526:16)
at StaticSymbolResolver.getModuleMetadata (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:31804:62)
at StaticSymbolResolver.hasDecorators (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:31531:46)
at analyzeFile (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:30078:63)
at visitFile (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:30057:45)
at /Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:30063:52
at Array.forEach (native)
at _analyzeFilesIncludingNonProgramFiles (/Users/julien/Documents/web/faucon-rouge/client/node_modules/@angular/language-service/bundles/language-service.umd.js:30063:15)
getTemplateRefrences: 367ms
SERVER ERROR: Cannot read property 'length' of null
TypeError: Cannot read property 'length' of null
at Project.updateFileMap (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:797:94)
at Project.updateGraph (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:815:14)
at Project.finishGraph (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:807:14)
at ProjectService.openConfigFile (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1634:17)
at ProjectService.openOrUpdateConfiguredProjectForFile (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1486:41)
at ProjectService.openClientFile (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/editorServices.js:1404:23)
at /Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:135:47
at TextDocuments.logErrors (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:235:13)
at /Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/documents.js:131:74
at handleNotification (/Users/julien/.vscode/extensions/Angular.ng-template-0.1.7/server/node_modules/vscode-jsonrpc/lib/main.js:353:21)
[Error - 23:07:46] Notification handler 'textDocument/didOpen' failed with message: Cannot read property 'length' of null
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 14
- Comments: 16 (2 by maintainers)
Temp workaround:
Replace the contents of the
server
folder in your vscodeAngular.ng-template-0.1.7
extension with the files out of the repo:https://github.com/smasala/angular-language-service-0.17.patch
You’ll usually find your extension folder in
Windows
under: C:\Users\[username]\.vscode\extensions\Angular.ng-template-0.1.7This bug is super annoying and it’s not getting any attention for quite some time… 😢
This is my output after downloading @smasala solution and replacing my
~/.vscode/extensions/Angular.ng-template-0.1.7/server
folder with the included:Before switch
The file it complains about in my case (
./node_modules/@angular/common/locales/nb.metadata.json
) actually does exist. Don’t know why it is looking for it, but this is what it contains:[null]
. In this locales folder, I have 516*.metadata.json
files, all identical.The solution provided here https://github.com/angular/vscode-ng-language-service/issues/192#issuecomment-343920320 solves it, which suggests that this must be an error in
@angular/common
.This PR seems to be able to solve it: https://github.com/angular/angular/pull/20557
There is an issue about it in the angular repo as well: https://github.com/angular/angular/issues/20260 Quick summary: A
[null]
value in the imported[locale].metadata.json
file is causing this when you register a new locale. The workaround is to replace the[null]
with[]
in the[locale].metadata.json
.