Có cách nào để bật hỗ trợ cú pháp ES6 / ES7 trong vscode không?


103

Chỉnh sửa 3: Bắt đầu từ phiên bản 0.4.0, có thể bật cú pháp ES6 bằng cách thêm jsconfig.jsontệp vào thư mục dự án với nội dung sau:

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

Chỉnh sửa 2: Bạn có thể bỏ phiếu cho tính năng này trên giọng nói của người dùng


Có cách nào để "bật" ES6 / ES7 trong Visual Studio Code không?

ảnh chụp màn hình

Chỉnh sửa 1

Đã thử gợi ý của @ sarvesh- ghi đè javascript.validate.targetvà khởi động lại vscode. Không giúp được gì.


3
Bạn có phiền đặt nó như một câu trả lời hơn là một bản chỉnh sửa cho câu hỏi của bạn không?
Jeroen Vannevel

Câu trả lời:


28

Hiện tại, cách duy nhất để sử dụng các tính năng của ES6 và ES7 là sử dụng Typescript .

Mặt khác, ở đây bạn có thể thấy rằng có một yêu cầu tính năng cho ES6 và ES7


1
Cập nhật: Hình ES6 sẽ có mặt bắt đầu từ tháng 7 năm 2015 - visualstudio.uservoice.com/forums/293070-visual-studio-code/...
ToddSmithSalter

Nó có vẻ khá tốt. Tuy nhiên, nói chung vẫn còn nhiều việc phải làm.
mzdv

2
Tôi đang sử dụng phiên bản mới nhất, 0.8.0tôi vẫn thấy lỗi tô màu cho các chức năng mũi tên béo ... tại sao?
vanthome

@vanthome bạn cần phải chỉ ra các mảng dữ liệu mà bạn muốn ghi với es6, kiểm tra liên kết: code.visualstudio.com/Docs/languages/javascript
TlonXP

@TionXP ý bạn là cách tiếp cận với jsconfig.json? Tôi đã không thử điều đó nhưng tôi hy vọng điều này sẽ hoạt động nếu tôi bật nó trên toàn cầu. Tôi không muốn nói với VSCode từng tệp rằng tôi muốn sử dụng ES6.
vanthome

58

Nó khá dễ dàng, tại thư mục gốc của dự án, hãy tạo một tệp jsconfig.json và viết đối tượng này vào đó:

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

Hoạt động tuyệt vời, cảm ơn! Rõ ràng họ bao gồm này trong vscode mùa hè này: blogs.msdn.com/b/vscode/archive/2015/07/06/vs-code-es6.aspx Vì vậy, câu trả lời ở trên là không còn chính xác.
Tom

9
thêm "experimentalDecorators": truecho các trình trang trí es7
Meirion Hughes

ES6 nhập khẩu thì sao? Điểm gỡ lỗi / điểm ngắt có hoạt động không? Dường như không làm việc với "module": "es2015".
arve0

Điều này không làm việc cho tôi, tôi có điều này kẻ vấn đề stackoverflow.com/questions/35110019/...
jack trống

43

Liên kết này đã giúp rất nhiều. Thêm tệp jsconfig.json vào dự án không giúp được nhiều hay đúng hơn nó không phải là giải pháp tốt nhất. Đi tới tệp> tùy chọn> cài đặt. Trong tệp settings.json, thêm dòng này:

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

5

Thêm vào các câu trả lời ở trên ...

Theo Docs of VS Code ..

Đảm bảo rằng bạn đặt jsconfig.json ở thư mục gốc của dự án JavaScript chứ không chỉ ở thư mục gốc của không gian làm việc của bạn. Dưới đây là tệp jsconfig.json xác định đích JavaScript là ES6 và thuộc tính loại trừ loại trừ thư mục node_modules.

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

Đây là một ví dụ với thuộc tính tệp rõ ràng.

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

Thuộc tính tệp không thể được sử dụng cùng với thuộc tính loại trừ. Nếu cả hai đều được chỉ định, thuộc tính tệp sẽ được ưu tiên.

cũng thử chỉnh sửa thuộc tính "target" trong 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"
  ]
}

Điều này có nghĩa là gì: "ở gốc của dự án JavaScript của bạn chứ không chỉ ở gốc của không gian làm việc của bạn"?
Jared Christensen

Tại sao không thể vs mã chỉ nhận .babelrcvv? Tại sao tất cả các cấu hình trùng lặp? grumbl
Stijn de Witt



0

Kể từ ngày này và theo tài liệu ESLint trên VSCode Marketplace, bao gồm tệp cấu hình .eslintrc trong thư mục gốc của dự án sẽ cho phép ES6 linting trong phần mở rộng VSCode của ESLint.

Tệp cấu hình .eslintrc của tôi trông giống như sau:

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

Tôi đã cài đặt eslint thông qua npm trong node_modules và tất cả những gì tôi biết là với .eslintrc trong thư mục gốc của dự án ES6 linting hoạt động và không có nó thì không.

Hi vọng điêu nay co ich...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.