2015-07-21 18 views
23

Ho sentito dire che VS 2015 supporta la nuova sintassi js ma quando apro un progetto scritto usando aurelia.js in questo intelletto dell'IDE si lamenta di molte, molte cose ad es.Supporto ES6/ES7 nella comunità di Visual Studio 2015

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

Ho installato WebEssentials 2015. Ancora niente sembra funzionare ... Probabilmente un'informazione importante è che la mia attuale installazione VS è nuova, quindi non ho rovinato nessuna impostazione.

+0

Questo * è * un errore di sintassi. Intendevi inserirlo in una definizione letterale o di classe dell'oggetto? – Bergi

+1

ma non l'hai dimostrato. – loganfsmyth

+0

Ok, ho aggiornato la mia domanda. VS considera questo un errore anche se è all'interno di una classe. –

risposta

2

Avevo questo problema nei file .jsx, Visual Studio 2015 utilizzava il plug-in react-tools per analizzare ed evidenziare gli errori di sintassi.

non riesco a trovare la domanda che ho ricevuto questo da ora, ma qualcuno ha detto di cambiare una riga nel file seguente:

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

modificare la riga seguente:

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

A:

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

ho aggiunto l'opzione nonStrictEs6module, e ora non mi avvisate sulla maggior parte delle cose tranne frecce assegnati direttamente funzioni:

enter image description here

Sarebbe bello se potessimo in qualche modo sono riuscito a scambiare la react-tools trasformazione per un trasformatore babel stage-1, controllare la mia risposta here :-)

+2

Ogni volta che dobbiamo iniziare a fare jigging con i file di programma manualmente ci sono buone probabilità che gli aggiornamenti futuri ci trovino di nuovo lì a farlo di nuovo, se ricordiamo come. L'equipaggio della comunità di Visual Studio deve affrontarlo direttamente. Per ora uso il plugin "Open In Sublime Text" e modifica i miei file JS lì. – Serexx

+0

È abbastanza semplice per Google rispondere e farlo di nuovo, non ho ancora perso questo agli aggiornamenti –

2

enter image description here

Credo che il problema è il modello di progetto nodeJS. Ho creato un progetto web vuoto e ho usato git bash per eseguire i miei comandi jspm. Quando aggiungo un file js ho ancora un paio di problemi di sintassi ma riconosce la maggior parte della nuova sintassi.

+0

Sì, ma "la maggior parte di" non è abbastanza :). Nello screenshot allegato posso vedere che VS ti dà gli stessi errori della mia installazione. La cosa strana è che ho visto alcune esercitazioni video in cui l'autore ha utilizzato VS con nuova sintassi js e non ha riscontrato errori. Non ricordo se avessero installato un altro plug-in (diverso da webessentials). –

+0

Ho visto un video con la stessa cosa, non hanno avuto errori, ma credo che stessero usando il codice dello studio visivo: https://code.visualstudio.com/. È un IDE leggero come sublime o parentesi. Anche se l'IDE mostra errori, funzionerà ancora quando si esegue il progetto. Sono d'accordo che sarebbe meglio se nessuno fosse lì eccetto quelli che erano errori reali ma quelli mostrati nell'immagine sono molto meno di quelli nel modello di nodo che non gradisce l'importazione, l'esportazione, la classe, ecc. –

3

Per utilizzare la nuova sintassi ES6/ES7 è necessario utilizzare un traspiatore . Sono disponibili tre opzioni: Traceur, Babel o TypeScript. Questi trasmetteranno la nuova sintassi alla sintassi ES5 corrente supportata dai browser correnti. Aurelia ha un buon supporto per Babel o TypeScript.

Visual Studio 2015 include TypeScript 1.5. Quindi devi creare un file TypeScript anziché un file Javascript Javascript (.js). TypeScript lo trasporrà in un file .js ES5. Il file .js è quello che viene eseguito nel browser.

Quando si apre un file JavaScript in Visual Studio è in grado di gestire questo come un file ES5 Javascript e non come un file ES6/ES7 Javascript, quindi se si desidera utilizzare Babel allora si ottiene gli errori di sintassi nell'editor.

+4

Nota: non * devi * usare un transpiler se stai sviluppando il codice per un solo motore, che è un caso per le app JavaScript di Windows, quindi anche il codice ES6 che è evidenziato in modo non corretto a causa del supporto ES6 in Visual Studio stesso, funziona ancora correttamente sul dispositivo reale. – RReverser

0

La cosa migliore che posso suggerire è la

WebCompiler. La sua il modo più semplice e bello per scrivere ES6 o meno o dattiloscritto ecc

Il modo più semplice e potente per compilare MENO, SCSS, JSX e file CoffeeScript direttamente all'interno di Visual Studio o tramite MSBuild.

6

Javascript è una lingua. ES6 è una versione di Javascript. Microsoft non ha fornito un file di mapping intellisense per questo. I suggerimenti su questo post suggeriscono l'uso di framework/API javascript che forniscono file di mappatura intellisense. Questi suggerimenti non rispondono alla domanda su come smettere di ottenere errori intellisense per le nuove versioni di Javascript. A meno che qualcuno non crei quel file di mappatura e ci fornisca un URL per fare riferimento a Visual Studio/tools/Javascript/Intellisence/references, otterrete errori di sintassi scrivendo direttamente ES6 Javascript.

Problemi correlati