我找不到解决问题的方法,这里是:
我使用babel在我的api上将代码从es6转换为es5。
直到我添加了一个子模块,该子模块包含API和我的移动应用程序之间的共享功能(React Native),该方法一直有效。
现在,当我从该公共子模块中导入某些内容时,出现错误“意外的令牌'导入'”,因此不会对我的子模块进行编译。
请注意,在移动应用程序上,此子模块没有问题。
这里是我的结构:
| 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
的伎俩✅
节点v8.10.0
babel 7.0.0
这是预期的行为。如果您查看https://babeljs.io/docs/en/config-files,则关键部分是
正在编译的“文件名”必须位于“ babelrcRoots”包中,否则将完全跳过搜索。
该src/common/graphql/user.js
是内部的src/common
包,但你的根包是根,这是一个不同的包。
如果您想使用内部文件,则.babelrc
需要通过babel.config.js
在根目录中创建一个文件来选择使用内部文件
module.exports = {
babelrcRoots: [__dirname, __dirname + "/common"],
};
这样Babel知道应该将这两个软件包都视为可.babelrc
使用的软件包。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句