Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

У меня была эта проблема в .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 });

To:

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

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

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

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

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

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

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