web-dev-qa-db-fra.com

Prise en charge d'ES6 / ES7 dans la communauté Visual Studio 2015

J'entends dire que VS 2015 prend en charge la nouvelle syntaxe js mais quand j'ouvre un projet écrit en utilisant aurelia.js dans ce IDE intellisense se plaint de beaucoup, beaucoup de choses par exemple.

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

J'ai installé WebEssentials 2015. Toujours rien ne semble fonctionner ... Une information importante est probablement que mon installation VS actuelle est nouvelle, donc je n'ai pas gâché les paramètres.

24
Marek M.

J'avais ce problème dans les fichiers .jsx, Visual Studio 2015 utilisait le react-tools plugin pour analyser et mettre en évidence les erreurs de syntaxe.

Je ne trouve pas la question que j'ai eue à partir de maintenant, mais quelqu'un a dit de changer une ligne dans le fichier suivant:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\react-server\server.js

Modifiez la ligne suivante:

var transformed = reactTools.transformWithDetails(code, { elementMap: true });

À:

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

J'ai ajouté l'option nonStrictEs6module, et maintenant il ne m'avertit pas de la plupart des choses à l'exception des fonctions de flèches directement attribuées:

enter image description here

Ce serait bien si nous pouvions en quelque sorte J'ai réussi à échanger le react-tools transformer pour un babel stage-1 transformateur, consultez ma réponse ici :-)

2
user1641172

Javascript est une langue. ES6 est une version de Javascript. Microsoft ne lui a pas fourni de fichier de mappage intellisense. Les suggestions de cet article suggèrent d'utiliser des frameworks/API javascript qui fournissent des fichiers de mappage intellisense. Ces suggestions ne répondent pas à la question de savoir comment cesser d'obtenir des erreurs intellisense pour les nouvelles versions de Javascript. À moins que quelqu'un ne crée ce fichier de mappage et ne nous fournisse une URL de référence à partir de Visual Studio/tools/Javascript/Intellisence/references, vous obtiendrez des erreurs de syntaxe lors de l'écriture directe de Javascript ES6.

6
user7085375

Pour utiliser la nouvelle syntaxe ES6/ES7, vous devez utiliser un transpiler. Vous avez trois options Traceur, Babel ou TypeScript. Ceux-ci transposeront la nouvelle syntaxe dans la syntaxe ES5 actuelle prise en charge par les navigateurs actuels. Aurelia a un bon support pour Babel ou TypeScript.

Visual Studio 2015 inclut TypeScript 1.5. Vous devez donc créer un fichier TypeScript (.ts) au lieu d'un fichier Javascript (.js). TypeScript le transpile dans un fichier ES5 .js. Le fichier .js est celui qui s'exécute dans le navigateur.

Lorsque vous ouvrez un fichier Javascript dans Visual Studio, il le gère comme un fichier Javascript ES5 et non comme un fichier Javascript ES6/ES7, donc si vous souhaitez utiliser Babel, vous obtenez des erreurs de syntaxe dans l'éditeur. .

3
Arjen de Blok

enter image description here

Je pense que le problème est le modèle de projet nodeJS. J'ai créé un projet Web vide et utilisé git bash pour exécuter mes commandes jspm. Lorsque j'ajoute un fichier js, j'ai toujours quelques problèmes de syntaxe, mais il reconnaît la plupart de la nouvelle syntaxe.

2
Stephen Brickner

La meilleure chose que je puisse suggérer est

WebCompiler . C'est la façon la plus simple et la plus belle d'écrire ES6 ou LESS ou TypeScript, etc.

Le moyen le plus simple et le plus puissant pour compiler des fichiers LESS, Scss, JSX et CoffeeScript directement dans Visual Studio ou via MSBuild.

1
ahmadalibaloch