在我添加插件cordova-plugin-advanced-http,之前,离子型cordova运行/构建 android运行良好,错误声明如下:
发生未处理的异常: D:\Projects\MyApp\myAppTest\www\plugins\cordova-plugin-advanced-http\www\helpers.js:意外保留字‘’(9:6)
7 | var validResponseTypes = ['text','arraybuffer', 'blob'];
8 |
> 9 | var interface = {
| ^
10 | b64EncodeUnicode: b64EncodeUnicode,
11 | checkSerializer: checkSerializer,
12 | checkSSLCertMode: checkSSLCertMode,日志文件如下所示:
(D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:6325:17) at Parser.checkReservedWord (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:9556:12) at Parser.parseIdentifierName (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:9525:12) at Parser.parseIdentifier (D:\Projects\MyApp\myAppTest\node_ )( (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:7931:17) at Parser.parseVarId (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:10501:20) at Parser.parseVar (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:10477:12) )(D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:10299:10) at Parser.parseStatementContent (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:9896:21) at Parser.parseStatement (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:9829:17) at Parser.parseBlockOrModuleBlockBody (D:\Projects\MyApp\myAppTest\node_modules@(D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:10392:10) at Parser.parseBlock (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:10376:10) at Parser.parseFunctionBody (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:9424:24) at Parser(D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:9394:10) at withTopicForbiddingContext (D:\Projects\MyApp\myAppTest\node_modules@babel\parser\lib\index.js:10535:12)
我已经看到指定位置下的helper.js文件,它实际上包含了导致问题的单词接口,因为接口是保留字。
在运行build命令之前,我尝试过包括删除node_modules和重新安装它们在内的所有内容,在运行build命令之前,我删除了插件和平台文件夹,但这些文件夹对我来说都没有用。
一旦我删除cordova-plugin-advanced-http插件,离子型cordova运行/构建就开始正确地构建该项目。
发布于 2019-08-25 07:02:30
问题是,interface是一个未来的保留词:
说到底,是个窃听器。cordova-plugin-advanced-http开发人员并没有预料到这会在严格的设置下通过babel来执行这个限制。
看来你有两个选择:
对于第二个选项,我发现了一些有趣的讨论,通过搜索babel parser reserved word interface,而不是试图搜索任何与Ionic或Cordova相关的内容。不过,我不太清楚您需要更改的设置是什么。
但是,通过一些研究,您似乎可以在.babelrc文件中添加一个插件,该插件将自动重命名使用保留字的变量:
它的推荐用法是:
npm install --save-dev @babel/plugin-transform-reserved-words然后添加到您的.babelrc插件部分:
{
"plugins": ["@babel/plugin-transform-reserved-words"]
}https://stackoverflow.com/questions/57640896
复制相似问题