24

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

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

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

4

5 回答 5

6

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

于 2016-10-28T12:52:52.203 回答
3

要使用新的 ES6/ES7 语法,您必须使用transpiler。您有三个选项 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,那么您会在编辑器中遇到语法错误。

于 2015-07-29T06:06:10.207 回答
2

在此处输入图像描述

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

于 2015-07-22T13:47:03.970 回答
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"  });

我添加了 option nonStrictEs6module,现在除了直接分配的箭头函数之外,它不会警告我大多数事情:

在此处输入图像描述

如果我们能以某种方式设法将react-tools变换换成变压器,那就太好了,请在此处babel stage-1查看我的答案:-)

于 2016-03-30T17:34:22.350 回答
1

我能建议的最好的事情是

网络编译器。它是编写 ES6 或 LESS 或 TypeScript 等的最简单、最漂亮的方式。

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

于 2015-10-05T19:38:57.400 回答