Поддержка 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 ответов


у меня была эта проблема .файлы 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, и теперь он не предупреждает меня о большинстве вещей, кроме непосредственно назначенных функции стрелок:

enter image description here

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


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


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

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

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


enter image description here

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


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

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

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