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

ES6 / ES7 support in Visual Studio 2015 Community

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

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

我安装了 WebEssentials 2015。似乎仍然没有任何效果...可能重要的信息是我当前的 VS 安装是全新的,所以我没有搞乱任何设置。

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

要使用新的 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,那么你会在编辑器中遇到语法错误。

我能建议的最好的是

WebCompiler. Its the most easy and beautiful way to write ES6 or LESS or TypeScript etc.

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

我在 .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 尚未为其提供智能感知映射文件。关于此 post 的建议建议使用 javascript frameworks/APIs,它确实提供智能感知映射文件。这些建议没有回答关于如何停止获取新 Javascript 版本的智能感知错误的问题。除非有人创建了那个映射文件并提供了一个 URL 供我们从 Visual Studio/tools/Javascript/Intellisence/references 中引用,否则直接写 ES6 Javascript.

会出现语法错误