babel子模块意外的令牌导入

时间:2018-10-25 13:49:00

标签: javascript node.js babeljs

我找不到解决问题的方法,这里是:
我使用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

这是babel error

有人已经有这个问题了吗? 谢谢:)

编辑:如果我删除子模块package.json,它将正常工作

编辑2:将我的.babelrc重命名为babel.config.js就是the

节点v8.10.0
babel 7.0.0

1 个答案:

答案 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"], }; 的软件包。