2015-07-21 26 views
23

Tôi nghe nói rằng VS 2015 đang hỗ trợ cú pháp js mới nhưng khi tôi mở một dự án được viết bằng aurelia.js trong IDE intellisense này thì phàn nàn về nhiều thứ, ví dụ như.Hỗ trợ ES6/ES7 trong Visual Studio 2015 Community

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

Tôi đã cài đặt WebEssentials 2015. Vẫn không có gì có vẻ để làm việc ... Có lẽ một thông tin quan trọng là cài đặt VS hiện tại của tôi là một tươi, vì vậy tôi đã không mess lên bất kỳ cài đặt.

+0

Đó * là lỗi cú pháp. Ý của bạn là đặt cái này vào một định nghĩa chữ hoặc lớp đối tượng? – Bergi

+3

Đó là 'không' lỗi cú pháp trong ES6 mà tôi đang sử dụng ... –

+1

Đây là lỗi cú pháp làm mục nhập cấp cao nhất, không phải lỗi cú pháp là khóa/giá trị trong đối tượng hoặc lớp, nhưng bạn đã không thể hiện điều đó. – loganfsmyth

Trả lời

2

Tôi gặp sự cố này trong tệp .jsx, studio trực quan 2015 đang sử dụng plugin react-tools để phân tích cú pháp và làm nổi bật lỗi cú pháp.

tôi không thể tìm thấy câu hỏi tôi đã nhận này từ bây giờ, nhưng ai đó nói để thay đổi một dòng trong tập tin sau đây:

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

Thay đổi dòng sau:

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

Để:

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

Tôi đã thêm tùy chọn nonStrictEs6module và hiện tại nó không cảnh báo tôi qua hầu hết mọi thứ trừ mũi tên chức năng được giao trực tiếp:

enter image description here

Nó sẽ được tốt đẹp nếu chúng ta có thể bằng cách nào đó tôi quản lý để trao đổi trên các react-tools chuyển đổi cho một biến babel stage-1, hãy kiểm tra câu trả lời của tôi here :-)

+2

Bất cứ lúc nào chúng ta phải bắt đầu cắt xén với các tệp chương trình theo cách thủ công có một cơ hội khá tốt trong tương lai sẽ tìm thấy chúng ta quay lại làm lại, nếu chúng ta nhớ như thế nào. Đội ngũ cộng đồng Visual Studio cần phải giải quyết trực tiếp điều này. Bây giờ tôi sử dụng plugin "Open In Sublime Text" và chỉnh sửa các tệp JS của tôi ở đó. – Serexx

+0

Dễ dàng, đủ để Google trả lời và thực hiện lại, tôi chưa mất nội dung cập nhật này –

2

enter image description here

Tôi nghĩ vấn đề là mẫu dự án nodeJS. Tôi đã tạo một dự án web trống và sử dụng git bash để chạy các lệnh jspm của tôi. Khi tôi thêm một tập tin js tôi vẫn nhận được một vài vấn đề cú pháp nhưng nó nhận ra hầu hết các cú pháp mới.

+0

Vâng, nhưng "hầu hết" là không đủ :). Trên ảnh chụp màn hình kèm theo, tôi có thể thấy rằng VS cung cấp cho bạn các lỗi giống như cài đặt của tôi. Điều kỳ lạ là tôi đã nhìn thấy một số video hướng dẫn, nơi tác giả sử dụng VS với cú pháp js mới và anh/cô ấy đã không nhận được bất kỳ lỗi nào. Không thể nhớ nếu họ đã cài đặt bất kỳ plugin nào khác (không phải là webessentials). –

+0

Tôi đã xem một video với cùng một điều, họ không có lỗi gì cả, nhưng tôi tin rằng họ đang sử dụng mã phòng thu trực quan: https://code.visualstudio.com/. Đó là một IDE nhẹ như tuyệt vời hoặc dấu ngoặc đơn. Mặc dù IDE đang hiển thị lỗi nhưng nó vẫn hoạt động khi bạn chạy dự án. Tôi đồng ý nó sẽ là tốt hơn nếu không có ở đó, ngoại trừ những người đã được thực tế lỗi nhưng những người được hiển thị trong hình ảnh là ít hơn rất nhiều so với những người trong các nút mẫu mà không thích nhập khẩu, xuất khẩu, lớp học, vv –

3

Để sử dụng cú pháp ES6/ES7 mới, bạn phải sử dụng transpiler. Bạn có ba tùy chọn Traceur, Babel hoặc TypeScript. Chúng sẽ chuyển cú pháp mới sang cú pháp ES5 hiện tại mà các trình duyệt hiện tại hỗ trợ. Aurelia có hỗ trợ tốt cho Babel hoặc TypeScript.

Visual Studio 2015 bao gồm TypeScript 1.5. Vì vậy, bạn phải tạo một tệp TypeScript (.ts) thay vì Javascript tệp (.js). TypeScript sẽ chuyển nó thành tệp ES5 .js. Tệp .js là tệp chạy trong trình duyệt.

Khi bạn mở tệp Javascript trong Visual Studio, nó sẽ xử lý tệp này dưới dạng tệp Javascript ES5 Javascript và không phải là tệp Javascript ES6/ES7, vì vậy nếu bạn muốn sử dụng Babel thì bạn sẽ gặp lỗi cú pháp trong trình chỉnh sửa.

+4

Lưu ý: bạn không * có * để sử dụng trình chuyển đổi nếu bạn đang phát triển mã cho một động cơ, đó là trường hợp cho các ứng dụng JavaScript của Windows, vì vậy ngay cả mã ES6 được đánh dấu không chính xác do hỗ trợ ES6 kém trong Visual Studio, sẽ vẫn hoạt động bình thường trên thiết bị thực tế. – RReverser

0

Điều tốt nhất tôi có thể đề nghị là

WebCompiler. Cách dễ nhất và đẹp nhất để viết ES6 hoặc LESS hoặc TypeScript, v.v.

Cách dễ nhất và mạnh nhất để biên dịch các tệp LESS, Scss, JSX và CoffeeScript trực tiếp trong Visual Studio hoặc thông qua MSBuild.

6

Javascript là một ngôn ngữ. ES6 là một phiên bản của Javascript. Microsoft đã không cung cấp một tệp ánh xạ intellisense cho nó. Các đề xuất trên bài đăng này đề xuất sử dụng các khung/API javascript cung cấp các tệp ánh xạ intellisense. Những đề xuất này không trả lời câu hỏi về cách ngừng nhận các lỗi intellisense cho các phiên bản Javascript mới. Trừ khi ai đó tạo tệp ánh xạ đó và cung cấp URL cho chúng tôi tham chiếu từ Visual Studio/tools/Javascript/Intellisence/references, bạn sẽ gặp lỗi cú pháp khi viết thẳng Javascript của ES6.

Các vấn đề liên quan