Existe-t-il un moyen d'activer la prise en charge de la syntaxe ES6 / ES7 dans vscode?


103

Edit 3: À partir de la version 0.4.0, la syntaxe ES6 peut être activée en ajoutant un jsconfig.jsonfichier au dossier du projet avec le contenu suivant:

{
    "compilerOptions": {
        "target": "ES6"
    }
}

Edit 2: Vous pouvez voter pour cette fonctionnalité sur la voix de l'utilisateur


Existe-t-il un moyen «d'activer» ES6 / ES7 dans Visual Studio Code?

capture d'écran

Modifier 1

J'ai essayé la suggestion de @ sarvesh - écrasé javascript.validate.targetet redémarré vscode. N'a pas aidé.


3
Cela vous dérangerait-il de le mettre comme une réponse plutôt que comme une modification de votre question?
Jeroen Vannevel

Réponses:


28

Actuellement, la seule façon d'utiliser les fonctionnalités ES6 et ES7 est d'utiliser Typescript .

D'autre part, vous pouvez voir ici qu'il y a une demande de fonctionnalité pour ES6 et ES7


1
Mise à jour: Looks ES6 sera disponible à partir de juillet 2015 - visualstudio.uservoice.com/forums/293070-visual-studio-code
...

Cela semble plutôt bien. Pourtant, il y a du travail à faire en général.
mzdv

2
J'utilise la dernière version. 0.8.0Je vois encore des erreurs de coloration pour les fonctions de grosse flèche ... pourquoi?
vanthome du

@vanthome vous devez indiquer le tableau de fichiers que vous souhaitez écrire avec es6, vérifiez le lien: code.visualstudio.com/Docs/languages/javascript
TlonXP

@TionXP vous voulez dire l'approche avec jsconfig.json? Eh bien, je n'ai pas essayé cela mais je m'attends à ce que cela fonctionne si je l'active globalement. Je ne veux pas dire à VSCode fichier par fichier que je veux utiliser ES6.
vanthome

58

C'est assez simple, à la racine de votre projet créez un fichier jsconfig.json et écrivez cet objet dedans:

{
    "compilerOptions": {
        "target": "ES6",
        "module": "commonjs"
    }
}

Fonctionne très bien, merci! Apparemment, ils l'ont inclus dans vscode cet été: blogs.msdn.com/b/vscode/archive/2015/07/06/vs-code-es6.aspx La réponse ci-dessus n'est donc plus correcte.
Tom

9
ajouter "experimentalDecorators": truepour les décorateurs es7
Meirion Hughes

Qu'en est-il des importations ES6? Le débogage / les points d'arrêt fonctionneront-ils? Ne semble pas fonctionner avec "module": "es2015".
arve0

Cela ne fonctionne pas pour moi J'ai ce problème de gars stackoverflow.com/questions/35110019/…
jack vide

43

Ce lien a beaucoup aidé. L'ajout du fichier jsconfig.json au projet n'a pas beaucoup aidé ou plutôt ce n'est pas la meilleure solution. Allez dans fichier> préférences> paramètres. Dans le fichier settings.json, ajoutez cette ligne:

"jshint.options": { "esversion": 6 }

5

Ajout aux réponses ci-dessus ...

Selon Docs of VS Code.

Assurez-vous de placer le jsconfig.json à la racine de votre projet JavaScript et pas seulement à la racine de votre espace de travail. Vous trouverez ci-dessous un fichier jsconfig.json qui définit la cible JavaScript comme étant ES6 et l'attribut d'exclusion exclut le dossier node_modules.

{
    "compilerOptions": {
        "target": "ES6"
    },
    "exclude": [
        "node_modules"
    ]
}

Voici un exemple avec un attribut de fichiers explicite.

{
    "compilerOptions": {
        "target": "ES6"
    },
    "files": [
        "src/app.js"
    ]
}

L'attribut files ne peut pas être utilisé en conjonction avec l'attribut d'exclusion. Si les deux sont spécifiés, l'attribut files est prioritaire.

essayez également de modifier la propriété "target" dans tsconfig.json

{
  "compilerOptions": {
    "target": "es5",//es6
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}

Qu'est-ce que cela signifie: "à la racine de votre projet JavaScript et pas seulement à la racine de votre espace de travail"?
Jared Christensen

Pourquoi le code vs ne peut-il pas simplement récupérer, .babelrcetc.? Pourquoi toute la configuration dupliquée? grumbl
Stijn de Witt



0

À partir de cette date et selon la documentation ESLint sur VSCode Marketplace, l'inclusion d'un fichier de configuration .eslintrc à la racine du projet permet le linting ES6 dans l'extension ESLint VSCode.

Mon fichier de configuration .eslintrc ressemble à ceci:

extends:
  - standard
parser: babel-eslint
rules:
  object-curly-spacing: [ error, always ]
  react/prop-types: off
  space-before-function-paren: off

J'ai installé eslint via npm dans node_modules et tout ce que je sais, c'est qu'avec .eslintrc dans le dossier racine du projet ES6, le linting fonctionne et sans lui, ce n'est pas le cas.

J'espère que cela t'aides...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.