2016-10-22 2 views
0

Недавно я обновился до VSCode 1.6.1, и он переключился с TypScript 1.8.10 на 2.0.3, что заставило мой проект перестать работать.Код VisualStudio неправильная версия машинописного текста в Runtime

Рефлекта методы изменился, так что теперь Routing-контроллеры бросают следующее сообщение об ошибке при попытке получить метод атрибутов:

TypeError: Reflect.getMetadata is not a function 
    at exports.Body (C:\FN\FantasyNation\Stormbringer\node_modules\routing-contr 
ollers\decorator\params.js:155:30) 
    at __param (C:\FN\FantasyNation\Stormbringer\Scripts\controllers\UserControl 
ler.js:12:37) 
    at __decorate (C:\FN\FantasyNation\Stormbringer\Scripts\controllers\UserCont 
roller.js:5:110) 
    at Object.<anonymous> (C:\FN\FantasyNation\Stormbringer\Scripts\controllers\ 
UserController.js:56:1) 

Следуя инструкции на примечания к выпуску, чтобы вернуться к конкретной версии в моем рабочее место я установил старый машинописный в рабочем пространстве:

npm install [email protected] 

при повторном открытии VSCode не спрашивал меня о версии TS для использования, поэтому я вручную обновил свою рабочую область «settings.json», чтобы определить его:

{  
    "files.exclude": { 
     "**/*.js.map": true, 
     "**/*.js": {"when": "$(basename).ts"} 
    }, 
    "editor.stablePeek": true, 
    "typescript.tsdk": "node_modules/typescript/lib" 
} 

Когда я открываю "ts-файл" VSCode показывает правильную версию:

enter image description here

Но после перестройки (Ctrl + Shift + B) и запустить его снова (F5) Я до сих пор получив ту же самую ошибку.

Мой TSconfig является:

{ 
    "compilerOptions": { 
     "target": "es6", 
     "module": "commonjs",   
     "noImplicitAny": false, 
     "removeComments": true,   
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "inlineSourceMap": true, 
     "watch": false 
    }, 
    "exclude": [ 
     "node_modules" 
    ] 
} 

И мои настройки запуска являются:

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "name": "Launch", 
      "type": "node", 
      "request": "launch", 
      "program": "${workspaceRoot}/app.js", 
      "stopOnEntry": false, 
      "args": [], 
      "cwd": "${workspaceRoot}", 
      "runtimeExecutable": null, 
      "runtimeArgs": [ 
       "--nolazy" 
      ], 
      "externalConsole": true, 
      "sourceMaps": true, 
      "outDir": null 
     }, 
     { 
      "name": "Attach", 
      "type": "node", 
      "request": "attach", 
      "port": 5959 
     } 
    ] 
} 

Я пропускаю что-нибудь?

ответ

0

Ну, это было слияние, которое испортило код и переместило заказ на импорт.

import 'reflect-metadata'; 

Должен быть первый импорт, чтобы получить маршрутизацию контроллеров работает

Смежные вопросы