Tôi đang cố gắng biên dịch một ứng dụng Koa và Koa có các xác nhận kiểm tra để đảm bảo rằng tôi đang truyền các chức năng của máy phát như phần mềm trung gian. Tuy nhiên, tôi muốn biên dịch mã phía máy chủ của tôi từ ES7 bằng Babel, để nhất quán với mã kết thúc trước.Babel có thể biên dịch cho "node --harmony" thay vì ES5 không?
Có thể nhắm mục tiêu hài hòa nút, thay vì ES5 không? Tôi không thấy bất cứ điều gì hứa hẹn trong các tùy chọn, nhưng việc chọn một mục tiêu có vẻ giống như một điều chuẩn để có thể làm với trình biên dịch.
cập nhật
Blacklisting Babel của regenerator transform dường như không có hiệu lực, mặc dù tôi đang sử dụng stage: 1
.
index.js:
require("babel/register")({
sourceMaps: "inline",
stage: 1,
blacklist: [ "regenerator" ],
optional: [ "asyncToGenerator" ]
});
var app = require("./src/server");
app.listen(process.env.port || 3000);
src/server.js:
import koa from "koa";
import router from "koa-router";
router.get("/", function *(next) {
this.body = "Hi!";
});
let app = koa();
app.use(router());
export default app;
Execute: node --harmony index.js
node --version
v0.12.4
regenerator Blacklisting không có tác dụng, mặc dù tôi đang sử dụng 'giai đoạn: 1'. Điều kỳ lạ là nếu tôi chạy Babel từ CLI thay vì sử dụng bộ phun yêu cầu, tôi thấy rằng Babel chỉ biên dịch nguồn của tôi, không phải là Koa hoặc bất kỳ node_modules nào khác. Điều này là tốt, những mô-đun nên có máy phát điện của họ còn nguyên vẹn, nhưng khi tôi chạy phiên bản biên dịch, tôi vẫn nhận được lỗi xác nhận tương tự. –
Nếu tôi hỏi điều gì khiến bạn nói nó không có hiệu lực? Làm thế nào bạn thực sự thử nghiệm cho dù nó được tải như một máy phát điện thực sự vs một transpiled một? Xác nhận bạn đã đề cập là gì? – loganfsmyth
Tôi hỏi bởi vì theo như tôi biết, máy phát điện 'tái tạo' được chuyển đổi vẫn nên vượt qua kiểm tra 'GeneratorFunction '== fn.constructor.name' trong Koa. – loganfsmyth