2015-07-21 42 views
23

我听说VS 2015支持新的js语法,但是当我在此IDE中打开使用aurelia.js编写的项目时,intellisense会抱怨很多很多事情,例如。Visual Studio 2015中的ES6/ES7支持社区

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

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

+0

*表示语法错误。你是不是要把它放在对象字面量或类定义中? – Bergi

+3

这不是我在使用的ES6中的语法错误... –

+1

它是一个语法错误,作为顶级条目,它不是作为对象或类中的键/值的语法错误,但你没有显示出来。 – loganfsmyth

回答

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 :-)

+2

任何时候,如果我们记得如何,我们必须手动启动程序文件跳跃,那么未来的更新很有可能会发现我们在那里重做。 Visual Studio社区工作人员需要直接解决这个问题。现在我使用“Open In Sublime Text”插件并在那里编辑我的JS文件。 – Serexx

+0

它很容易谷歌的答案,并再次做到这一点,我还没有失去这个更新 –

2

enter image description here

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

+0

是的,但“大部分”是不够的:)。在附加的屏幕截图中,我可以看到VS为您提供与我的安装相同的错误。奇怪的是,我看过一些视频教程,作者在VS中使用了新的js语法,并且他/她没有收到任何错误。不记得他们是否安装了其他任何(webessentials除外)插件。 –

+0

我看过一个同样的视频,他们没有任何错误,但我相信他们使用的是Visual Studio代码:https://code.visualstudio.com/。它是一个像崇高或括号的轻量级IDE。 虽然IDE显示错误,但在运行项目时它仍然可以正常工作。我同意这样会更好,如果没有其他人在那里,除了那些实际的错误,但在图像中显示的那些比不喜欢导入,导出,分类等的节点模板中的那些更少。 –

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文件,所以如果你想用巴贝尔然后你在编辑器中的语法错误。

+4

注意:如果您仅为一个引擎开发代码(这是JavaScript Windows应用程序的一种情况),那么您不需要*使用转译器,因此即使ES6代码由于Visual Studio本身的ES6支持较差而被错误地突出显示,在实际设备上仍能正常工作。 – RReverser

0

我可以建议最好的事情是

WebCompiler。它的最容易和美丽的方式来编写ES6以下或打字稿等

最简单,最有力的方式来编译LESS,SCSS,JSX和CoffeeScript的文件直接在Visual Studio中或通过的MSBuild。

6

Javascript是一种语言。 ES6是Javascript的一个版本。微软尚未为其提供智能感知映射文件。这篇文章的建议建议使用提供intellisense映射文件的JavaScript框架/ API。这些建议不会回答如何停止为新的Javascript版本获取智能感知错误的问题。除非有人创建了这个映射文件,并且提供了一个可供我们从Visual Studio/tools/Javascript/Intellisence/references中引用的URL,否则将会得到直接编写ES6 Javascript的语法错误。