Babel注册不会转换node_modules中包含的自己的文件

时间:2017-01-27 20:51:54

标签: javascript node.js ecmascript-6 babel

我正在尝试将alexa-app-server与我在ES6中编写的一些需要编译的代码一起使用。当我运行自己的服务器时,我希望不必提前单独进行转换,只需包含文件server.js

require("babel-register")({ignore: false, presets: ["es2015"]});
const AlexaAppServer = require("alexa-app-server");
AlexaAppServer.start({
    port: process.env.PORT || 8080,
    app_dir: "apps",
});

然后我apps/skill/index.js与:

import alexa from "alexa-app";
const skill = new alexa.app("skill");
skill.launch((req, res) => res.say("hello"));
skill.intent("TestIntent", ["test"], (req, res) => res.say("test"));

export const express = skill.express;

express导出适用于alexa-app-server需要文件时:https://github.com/alexa-js/alexa-app-server/blob/master/index.js#L68

当我运行我的服务器代码时,我得到:

Error loading app [/Users/acrites/projects/mobq/usbank/functions/usbank/index.js]:
SyntaxError: Unexpected token import

这向我表明该文件未被翻译。 alexa-app-server位于node_modules,但我使用ignore: false as indicated in the babel documentation来包含node_modules,但由于所包含的文件实际上不在node_modules中我甚至不确定这是否必要。使用babel-node server.js做同样的事情。但是,运行babel-node apps/skill可以正常工作。

有没有办法让babel在node_modules内转换自己需要的文件?

0 个答案:

没有答案