Babel ES6:导入节点模块也需要在ES6中进行转换

我正在导入一个节点模块,但遇到了一个问题,我导入的节点模块是用es6编写的,而且babel无法传输。

在基类头中:

import foo from 'bar/lib/foo'; 

在节点模块中的foo.js中:

 import Debug from 'debug'; export default class foo from bar { ... ... ... } 

错误信息:

 import Debug from 'debug'; ^^^^^^ SyntaxError: Unexpected token import 

正如你所看到的,它能够find文件foo.js,但是它没有在es6中运行节点模块。 我怎样才能使Babel传输基本代码以及它试图导入的节点模块?

你有一个文件.babelrc这个内容?

 { "presets": ["es2015"], "plugins": [] } 

你可以在这里查看一个例子: https : //github.com/Talento90/ima-up

节点模块应该与源代码分开编译。 如果您使用的是外部库,则应该有一个包含编译代码的目录。 如果你正在编写你自己的,你需要使用npm link并单独编译它。

如果节点模块已经有一个传输的目录(如dist ),那么可以尝试将传输的代码导入到节点模块中:

 import foo from 'bar/dist/foo';