我找不到解决问题的方法,这里是:
我使用babel在我的api上将代码从es6转换为es5。
直到我添加了一个子模块,该子模块都包含API和我的移动应用程序(React Native)之间的共享功能,这一切都很好。
现在,当我从这个公共子模块中导入某些内容时,出现错误“意外的令牌'import'”,因此我的子模块没有被编译。
请注意,在移动应用程序上,此子模块没有问题。
这是我的结构:
| src
| -common /(子模块)
| --graphql /
| ---user.js(必需,用es6编写)
| --package.json
| -数据/
| -助手/
| -index.js
我的babelrc看起来像:
{
"plugins": [
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-transform-arrow-functions",
"@babel/plugin-transform-regenerator",
"@babel/plugin-transform-runtime",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-proposal-class-properties"
],
"presets": ["@babel/preset-env"]
}
请注意我的子模块没有任何.babelrc
有人已经有这个问题了吗? 谢谢:)
编辑:如果我删除子模块package.json,它将正常工作
编辑2:将我的.babelrc
重命名为babel.config.js
就是the
节点v8.10.0
babel 7.0.0
答案 0 :(得分:0)
这是预期的行为。如果您查看https://babeljs.io/docs/en/config-files,则关键部分是
正在编译的“文件名”必须位于“ babelrcRoots”包中,否则将完全跳过搜索。
src/common/graphql/user.js
位于src/common
包中,但是您的根包是根,这是另一个包。
如果您想使用内部.babelrc
,则需要通过在内部{
babel.config.js
以便Babel知道两个软件包都应被视为支持module.exports = {
babelrcRoots: [__dirname, __dirname + "/common"],
};
的软件包。