Visual Studio 2015社区中的ES6 / ES7支持

时间:2015-07-21 16:18:51

标签: visual-studio-2015 ecmascript-6 aurelia ecmascript-7

我听说VS 2015支持新的js语法但是当我在这个IDE中打开一个使用aurelia.js编写的项目时,intellisense会抱怨很多很多东西,例如。

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

我安装了WebEssentials 2015。似乎仍然没有任何工作...可能一个重要的信息是我目前的VS安装是一个新的,所以我没有弄乱任何设置。

5 个答案:

答案 0 :(得分:6)

Javascript是一种语言。 ES6是Javascript的一个版本。 Microsoft尚未为其提供intellisense映射文件。关于这篇文章的建议建议使用提供智能感知映射文件的javascript框架/ API。这些建议没有回答关于如何停止获取新Javascript版本的intellisense错误的问题。除非有人创建该映射文件并为我们提供从Visual Studio / tools / Javascript / Intellisence / references引用的URL,否则您将在编写ES6 Javascript时出现语法错误。

答案 1 :(得分:3)

要使用新的ES6 / ES7语法,您必须使用转发器。您有三个选项Traceur,Babel或 TypeScript 。这些将转换为当前浏览器支持的当前ES5语法的新语法。 Aurelia对Babel或TypeScript有很好的支持。

Visual Studio 2015包含TypeScript 1.5。因此,您必须创建 TypeScript 文件(.ts)而不是 Javascript 文件(.js)。 TypeScript会将其转换为ES5 .js文件。 .js文件是在浏览器中运行的文件。

当您在Visual Studio中打开Javascript文件时,它会将其作为 ES5 Javascript文件处理,而不是作为ES6 / ES7 Javascript文件处理,因此如果您想使用Babel,则会出现语法错误在编辑器中。

答案 2 :(得分:2)

enter image description here

我认为问题是nodeJS项目模板。我创建了一个空的Web项目,并使用git bash来运行我的jspm命令。当我添加一个js文件时,我仍然会遇到一些语法问题,但它会识别大部分新语法。

答案 3 :(得分:2)

我在.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变换,那就太好了,看看我的答案here: - )

答案 4 :(得分:1)

我能提出的最好的建议是

  

WebCompiler。它是编写ES6或LESS或TypeScript等最简单,最美丽的方式。

直接在Visual Studio中或通过MSBuild编译LESS,Scss,JSX和CoffeeScript文件的最简单,最强大的方法。