Поддержка ES6 / ES7 в сообществе Visual Studio 2015


Я слышал, что VS 2015 поддерживает новый синтаксис js, но когда я открываю проект, написанный с использованием aurelia.js в этой IDE intellisense жалуется на многие, многие вещи, например.

export class UpperValueConverter {
  toView(value){
    return value && value.toUpperCase();
  }
}

У меня установлен WebEssentials 2015. Но все равно ничего не получается... Вероятно, важной информацией является то, что моя текущая установка VS является свежей, поэтому я не испортил никаких настроек.

5 24

5 ответов:

У меня была эта проблема.JSX файлы, visual studio 2015 использует react-tools плагин для разбора и выделения синтаксических ошибок.

Я не могу найти вопрос, который я получил от этого сейчас, но кто-то сказал, чтобы изменить строку в следующем файле:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\react-server\server.js

Измените следующую строку:

var transformed = reactTools.transformWithDetails(code, { elementMap: true });

Кому:

var transformed = reactTools.transformWithDetails(code, 
    { elementMap: true, 
      es6module: "--es6module", 
      harmony: "--harmony", 
      nonStrictEs6module: "--non-strict-es6module"  });

Я добавил опцию nonStrictEs6module, и теперь она не предупреждает меня о большинстве вещей, кроме непосредственно назначенных функций стрелок:

Введите описание изображения здесь

было бы неплохо, если бы мы могли каким-то образом мне удалось поменять трансформатор react-tools на трансформатор babel stage-1, Проверьте мой ответ здесь :-)

Javascript-это язык. ES6-это версия Javascript. Microsoft не предоставила для него файл сопоставления intellisense. В этой статье предлагается использовать JavaScript-фреймворки / API, которые предоставляют файлы сопоставления intellisense. Эти предложения не отвечают на вопрос о том, как остановить получение ошибок intellisense для новых версий Javascript. Если только кто-то не создаст этот файл сопоставления и не предоставит нам URL для ссылки из Visual Studio / tools / Javascript / Intellisence / references вы получите синтаксические ошибки при написании прямого ES6 Javascript.

Для использования нового синтаксиса ES6/ES7 необходимо использовать транспилятор . У вас есть три варианта Traceur, Babel или TypeScript. Они транспилируют новый синтаксис в текущий синтаксис ES5, который поддерживается текущими браузерами. Аурелия имеет хорошую поддержку для Вавилона или машинописи.

Visual Studio 2015 включает TypeScript 1.5. Таким образом, вы должны создать файл TypeScript (.ts) вместо файла Javascript (.в JS). TypeScript перенесет это в ES5 .файл js. То.файл js-это тот, который запускается в браузере.

При открытии файла Javascript в Visual Studio он будет обрабатывать его как файл Javascript ES5, а не как файл Javascript ES6/ES7, поэтому, если вы хотите использовать Babel, вы получите синтаксические ошибки в Редакторе.

Введите описание изображения здесь

Я думаю, что проблема заключается в шаблоне проекта nodeJS. Я создал пустой веб-проект и использовал git bash для запуска моих команд jspm. Когда я добавляю файл js, я все еще получаю пару синтаксических проблем, но он распознает большую часть нового синтаксиса.

Лучшее, что я могу предложить, это

WebCompiler . Это самый простой и красивый способ написать ES6 или меньше или TypeScript и т. д.

Самый простой и мощный способ компиляции файлов LESS, Scss, JSX и CoffeeScript непосредственно в Visual Studio или через MSBuild.