2015-07-21 11 views
23

Słyszałem, że VS 2015 wspiera nową składnię js, ale kiedy otworzę projekt napisany przy użyciu aurelia.js w tym IDE, intellisense narzeka na wiele, wiele rzeczy, np.Obsługa ES6/ES7 w środowisku społeczności Visual Studio 2015

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

Mam zainstalowany WebEssentials 2015. Nadal nic nie działa. Prawdopodobnie ważną informacją jest to, że moja obecna instalacja VS jest świeża, więc nie wprowadziłem żadnych ustawień.

+0

To * jest * błędem składni. Czy chcesz umieścić to w definicji literalnej obiektu lub klasy? – Bergi

+3

"Nie" to błąd składni w ES6, którego używam ... –

+1

Jest to błąd składniowy jako wpis najwyższego poziomu, nie jest to błąd składniowy jako klucz/wartość w obiekcie lub klasie, ale tego nie pokazałeś. – loganfsmyth

Odpowiedz

2

Miałem ten problem w plikach .jsx, studio visual 2015 używało wtyczki react-tools do analizowania i podkreślania błędów składniowych.

nie mogę znaleźć pytanie mam to od teraz, ale ktoś powiedział, aby zmienić linię w następujący plik:

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

zmienić następujący wiersz:

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

Do:

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

dodałem opcję nonStrictEs6module, a teraz nie ostrzega mnie większość rzeczy z wyjątkiem bezpośrednio przypisanych strzałki funkcji:

enter image description here

Byłoby miło, gdybyśmy mogli jakoś udało mi się zamienić na zewnątrz react-tools przekształcić do transformatora babel stage-1, sprawdź moją odpowiedź here :-)

+2

Za każdym razem, gdy musimy ręcznie uruchamiać pliki programowe, istnieje spora szansa, że ​​przyszłe aktualizacje znajdą nas z powrotem, robiąc to ponownie, jeśli pamiętamy jak. Załoga Community Studio Visual Studio musi rozwiązać ten problem bezpośrednio. Na razie używam wtyczki "Open In Sublime Text" i edytuj tam moje pliki JS. – Serexx

+0

Jest to dość łatwe, aby odpowiedzieć na Google i zrobić to jeszcze raz, nie utraciłem tego jeszcze do aktualizacji –

2

enter image description here

Myślę, że problemem jest szablon projektu nodeJS. Stworzyłem pusty projekt internetowy i użyłem git bash do uruchomienia moich komend jspm. Kiedy dodaję plik js nadal mam kilka problemów z syntaktycznymi składnikami, ale rozpoznaję większość nowej składni.

+0

Tak, ale "większość" to za mało :). Na załączonym zrzucie ekranu widzę, że VS daje te same błędy co moja instalacja. Co dziwne, widziałem kilka samouczków wideo, w których autor użył VS z nową składnią js i nie dostał żadnych błędów. Nie pamiętam, czy zainstalowano jakąś inną (inną niż Webessentials) wtyczkę. –

+0

Widziałem wideo z tym samym, nie mieli błędów, ale uważam, że używali kodu visual studio: https://code.visualstudio.com/. Jest to lekkie urządzenie IDE, takie jak sublime lub nawiasy. Mimo że IDE pokazuje błędy, nadal będzie działać po uruchomieniu projektu. Zgadzam się, że byłoby lepiej, gdyby ich nie było, z wyjątkiem tych, które były rzeczywistymi błędami, ale te pokazane na obrazku są dużo mniejsze niż te w szablonie węzła, który nie lubi importu, eksportu, klasy, itp. –

3

Aby użyć nowej składni ES6/ES7, należy użyć transpilatora . Dostępne są trzy opcje: Traceur, Babel lub TypeScript. Przeniesią one nową składnię do obecnej składni języka ES5 obsługiwanej przez obecne przeglądarki. Aurelia ma dobre wsparcie dla Babel lub TypeScript.

Visual Studio 2015 zawiera TypeScript 1.5. Dlatego musisz utworzyć plik TypeScript TypeScript (.ts) zamiast pliku Javascript (.js). TypeScript przeniesie to do pliku .js ES5. Plik .js to taki, który działa w przeglądarce.

Po otwarciu pliku JavaScript w Visual Studio zajmie się nim jako plik JavaScript ES5, a nie jako plik JavaScript ES6/ES7, więc jeśli chcesz używać Babel, otrzymasz błędy składniowe w edytorze.

+4

Uwaga: nie musisz * używać * transpilatora, jeśli tworzysz kod tylko dla jednego silnika, co jest przypadkiem dla aplikacji Windowsa JavaScript, więc nawet kod ES6, który jest nieprawidłowo podświetlony z powodu słabej obsługi ES6 w samym Visual Studio, będzie nadal działa poprawnie na rzeczywistym urządzeniu. – RReverser

0

Najlepszą rzeczą, jaką mogę zasugerować jest

WebCompiler. Jego najbardziej prosty i piękny sposób pisać ES6 lub mniej, lub maszynopis itp

Najprostszym i najbardziej skutecznym sposobem, aby skompilować mniej SCSS, JSX i plików coffeescript bezpośrednio w Visual Studio lub poprzez MSBuild.

6

JavaScript to język. ES6 to wersja Javascript. Microsoft nie dostarczył do tego pliku mapowania intellisense. Sugestie dotyczące tego posta sugerują używanie ram javascript/API, które udostępniają pliki mapowania intellisense. Te sugestie nie odpowiadają na pytanie, jak przestać otrzymywać błędy intellisense dla nowych wersji Javascript. Dopóki ktoś nie utworzy tego pliku mapowania i nie poda nam adresu URL do Visual Studio/tools/Javascript/Intellisence/references, otrzymasz błędy składniowe przy pisaniu prostego kodu ES6 Javascript.

Powiązane problemy