我正在正确导入节点模块但遇到了一个问题,我导入的节点模块是用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
正如您所看到的,它能够找到文件foo.js,但它没有在es6中运行节点模块。如何让Babel转换基本代码以及它试图导入的节点模块?
答案 0 :(得分:1)
你有这个内容的文件.babelrc吗?
{
"presets": ["es2015"],
"plugins": []
}
您可以在此处查看示例:https://github.com/Talento90/ima-up
答案 1 :(得分:1)
节点模块应与源代码分开编译。如果您使用的是外部库,则应该有一个包含已转换代码的目录。如果您自己编写,则需要使用npm link
并单独编译。
如果节点模块已经有一个已转换的目录(如dist
),您可以尝试将已转换的代码导入节点模块:
import foo from 'bar/dist/foo';