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';