2015-10-31 25 views
7

Tôi đang cố gắng chạy Babel thông qua CLI của nó bằng cách sử dụng babel-node nhưng tôi vẫn gặp lỗi Unexpected token export. Tôi hiểu rằng Babel 6 là tất cả về các plugin và tôi cần phải đặt plugin thông qua .babelrc nhưng nó dường như không hoạt động đúng cách.Babel 6 CLI: Xuất mã thông báo không mong muốn?

Vì vậy, đây là những câu hỏi của tôi:

  • Tôi có nên sử dụng syntax-export-extensions plugin? Tôi cũng đã thử sử dụng phương pháp thay thế là setting the plugin through package.json nhưng vẫn không có may mắn.
  • Ngoài ra, CLI của Babel 6 có tùy chọn .babelrc toàn cầu không? Có vẻ như tẻ nhạt nếu tôi phải cài đặt plug-in cho mỗi dự án đòi hỏi nó ...

Đối với những người tò mò về những gì tôi đang cố gắng để xuất khẩu, thì đây là lớp:

'use strict'; 

class Factorial { 
    static solve (num) { 
    if(num === 0) return 1; 
    else return num * Factorial.solve(num - 1); 
    } 
} 

console.log(Factorial.solve(5)) 

export default Factorial; 
+3

FWIW, bạn không nên sử dụng lớp nếu chỉ có phương thức tĩnh. Hoặc sử dụng một đối tượng hoặc trong trường hợp này, đơn giản có một hàm duy nhất. –

+0

@FelixKling Cảm ơn bạn đã tip, tôi chỉ được sử dụng để sử dụng các lớp học kể từ khi tôi đến từ một nền C++/C#/Java;) – iwatakeshi

Trả lời

13

Cách dễ nhất để bắt đầu là sử dụng giá trị đặt trước.

Đầu tiên chúng ta hãy cài đặt phụ thuộc của chúng tôi:

$ npm install --save-dev babel-cli babel-preset-es2015 

Sau đó thêm một kịch bản build để package.json bạn chạy Babel: (điều này rất quan trọng vì nó sẽ sử dụng phiên bản địa phương của bạn của babel-cli thay vì một cài đặt trên toàn cầu)

"build": "babel input.js" 

package.json của bạn sẽ trông như thế này:

{ 
    "name": "my-module", 
    "devDependencies": { 
    "babel-cli": "^6.x.x", 
    "babel-preset-es2015": "^6.x.x" 
    }, 
    "scripts": { 
    "build": "babel input.js -o compiled.js" 
    } 
} 

Cuối cùng, bạn muốn cập nhật địa phương .babelrc như thế này của bạn:

{ 
    "presets": ["es2015"] 
} 

Sau đó, bạn chạy npm run build và tất cả các bạn đang thiết lập để đi.

Ngoài ra, CLI của Babel 6 có tùy chọn toàn cầu .babelrc không? Có vẻ tẻ nhạt nếu tôi phải cài đặt các plugin cho mọi dự án yêu cầu nó ...

Đó là một ý tưởng tồi vì bạn không thể cập nhật nó mà không cập nhật từng mã dự án của bạn. Có phiên bản cục bộ có nghĩa là lỗi tiềm ẩn này ít xảy ra hơn.

+0

Cảm ơn! Tôi nhận ra rằng cài đặt trước tồn tại và đã sử dụng nó nhưng có vẻ như từ khóa 'import' không hoạt động?Bạn có biết gì về vấn đề này không? – iwatakeshi

+0

Có thể là sự cố với phiên bản Babel của bạn. Đã có một số sự cố ban đầu, hãy thử cập nhật và nếu điều đó không hoạt động thì hãy dừng kênh hỗ trợ. https://slack.babeljs.io/ –

3

Tôi đã nhận được lỗi tương tự, nhưng cấu hình webpack/babel của tôi có vẻ chính xác. Khi dùng thử và báo lỗi, tôi đã thay thế export myFunction bằng export default myFunction và lỗi đã được giải quyết.


Sau đó, tôi nhận ra rằng cách xuất chính xác là export {myFunction}. Tôi đã thực hiện nó và mọi thứ hoạt động tốt.

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