SyntaxError: Unexpected token M (当从 Visual Studio 2015 运行 cordova 项目时)
Posted
技术标签:
【中文标题】SyntaxError: Unexpected token M (当从 Visual Studio 2015 运行 cordova 项目时)【英文标题】:SyntaxError: Unexpected token M (when running cordova project from Visual Studio 2015) 【发布时间】:2015-10-20 08:23:17 【问题描述】:当我尝试使用远程设备使用 Visual Studio 2015 运行我的 Cordova 应用程序时,我收到错误“SyntaxError: Unexpected token M”。 Visual Studio 安装在 Windows 10 上,它是我 Mac 上的 Parallels VM。我已按照步骤在我的 Mac 上设置 remotebuild。从 Visual Studio - 工具 - 选项,我可以成功连接到我的 mac 上正在运行的 remotebuild。当我在 chrome 中的 Ripple 上运行该项目时,该项目运行良好。
这里有一点背景。当我第一次开始从事这个项目时,它运行良好,我能够在我的 Mac 上的 ios 模拟器上运行它。有一次,它开始给我一个与我的 iOS 开发者帐户相关的不同错误。我在我的 Mac 上打开 Xcode,意识到我需要登录开发者网站并接受最新的许可协议。完成此操作后,我尝试从 Visual Studio 再次运行该项目。那时我看到一个与证书有关的错误。我再次运行该项目,从那时起我不断收到此“SyntaxError: Unexpected token M”错误。
我尝试运行同一项目的旧备份。我得到的错误是:
An error occurred uploading to the build server https://10.0.1.31:3000/cordova: Error: self signed certificate in certificate chain
这是我看到“SyntaxError: Unexpected token M”的输出日志部分:
1> ------ changeList.deletedFilesIos: (TaskId:11)
1> ------ changeList.addedPluginsIos: org.apache.cordova.camera@0.3.6,org.apache.cordova.file-transfer@0.5.0,org.apache.cordova.splashscreen@1.0.0,org.apache.cordova.inappbrowser@0.6.0 (TaskId:11)
1> ------ changeList.deletedPluginsIos: (TaskId:11)
1> ------ changeList.addedPlugins: org.apache.cordova.camera@0.3.6,org.apache.cordova.file-transfer@0.5.0,org.apache.cordova.splashscreen@1.0.0,org.apache.cordova.inappbrowser@0.6.0 (TaskId:11)
1> ------ changeList.deletedPlugins: (TaskId:11)
1> ------ Updating plugins (TaskId:11)
1> SyntaxError: Unexpected token M (TaskId:11)
1>Done executing task "MdaVsCli" -- FAILED. (TaskId:11)
1>Done building target "BuildMDA" in project "MyPyaarApp.jsproj" -- FAILED.: (TargetId:12)
1>
1>Project Performance Summary:
1> 672 ms C:\svn\mypyaar\trunk\MyPyaarApp\MyPyaarApp\MyPyaarApp.jsproj 1 calls
1> 672 ms build 1 calls
1>
1>Target Performance Summary:
1> 0 ms BuildOnlySettings 1 calls
1> 0 ms CompileTypeScript 1 calls
1> 0 ms AfterBuild 1 calls
1> 0 ms TrackJsChanges 1 calls
1> 0 ms BeforeBuild 1 calls
1> 0 ms PreComputeCompileTypeScript 1 calls
1> 0 ms CoreBuild 1 calls
1> 16 ms _CheckForInvalidConfigurationAndPlatform 1 calls
1> 266 ms EnsureNodeJsRequirementsAreAtCorrectVersion 1 calls
1> 266 ms InstallMDA 1 calls
1> 391 ms BuildMDA 1 calls
1>
1>Task Performance Summary:
1> 0 ms MdaVerifySetup 1 calls
1> 0 ms MdaTrackJsChanges 1 calls
1> 0 ms Message 2 calls
1> 0 ms VsTsc 2 calls
1> 0 ms AssignTargetPath 1 calls
1> 266 ms RunMdaInstall 1 calls
1> 266 ms CallTarget 1 calls
1> 391 ms MdaVsCli 1 calls
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.65
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========
【问题讨论】:
【参考方案1】:找到了解决办法!!!
幸运的是,我有一个旧的项目备份,在远程设备上运行它时没有产生“SyntaxError: Unexpected token M”。我使用比较工具来查看文件/文件夹的差异。事实证明,位于插件文件夹中的“remote_ios.json”文件已损坏。我删除了它,在下一次运行时它生成了一个正确的,现在一切都按预期工作。我可以在我的 Mac 和 iPhone 上部署到 iOS 模拟器。
我确实注意到文件确实损坏了几次。所以每次我删除文件并重新创建它并且一切正常。听起来像是 Visual Studio 2015 中的一个错误。
这是我损坏的 remote_os.json 文件的样子:
"prepare_queue":
"installed": [],
"uninstalled": []
,
"config_munge":
"files":
"framework":
"parents":
"ImageIO.framework": [
"xml": true,
"count": 1
],
"CoreLocation.framework": [
"xml": false,
"count": 1
],
"CoreGraphics.framework": [
"xml": false,
"count": 4
],
"AssetsLibrary.framework": [
"xml": false,
"count": 3
],
"MobileCoreSe
【讨论】:
另外,关于错误“证书链中的自签名证书”,我需要做的就是通过调用remotebuild证书重置来重置mac上的remotebuild证书 哇,我一直在寻找这个,谢谢先生,你让我开心! 某些(不是全部)Cordova 项目和最新的 VS2015 Update 1、Cordova Tools 6 仍然会发生此错误。对于受影响的项目,在每次构建之前删除 remote_ios.json 是解决此问题的一种方法。 @NavidHarandi,运行 remotebuild 证书重置并没有为我修复自签名证书错误。关于那个还有其他想法吗? 嗨 Andrew,试试这个临时解决方法:运行 remotebuild 将安全模式设置为 false:(1) 在 VS 2015“远程代理配置”设置中的 mac 终端上运行 remotebuild --secure false (2) , 将安全模式设置为 false【参考方案2】:解决办法是
以及针对此问题的更永久修复(对我有用):
就是删除你的插件文件夹
恢复所有插件。 (列在您的 package.json
中的一个名为 cordovaPlugins
的数组中)
提示:运行 cordova plugin ls
以获得您需要重新添加的内容的列表。
我使用 Ionic,所以我只使用了这个命令:ionic state restore --plugins
,瞧,问题永远解决了(我希望)。
附言。仅供参考,我不会为此以管理员身份运行 cmd,这可能是您的 iOS 应用出现问题的原因...
从Navid Harandi's answer找到问题的根源。
【讨论】:
以上是关于SyntaxError: Unexpected token M (当从 Visual Studio 2015 运行 cordova 项目时)的主要内容,如果未能解决你的问题,请参考以下文章
求教php运行时出错:Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION 。。。
Import Unexpected identifier + SyntaxError: Unexpected string
js动态加载的a标签的onclick事件参数传递,一直报Uncaught SyntaxError: Invalid or unexpected token