当我尝试使用远程设备使用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 ==========
答案 0 :(得分:10)
找到解决方案!!!
幸运的是,我有一个旧项目的备份,它没有产生"语法错误:意外的令牌M"在远程设备上运行时。我使用比较工具来查看文件/文件夹的差异。事实证明," remote_ios.json"位于plugins文件夹中的文件已损坏。我删除了它,并在下一次运行时生成了一个正确的,现在一切都按预期工作。我可以在我的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
答案 1 :(得分:0)
以及针对此问题的更长期修复(对我有用):
是否删除您的插件文件夹
恢复所有插件。 (在名为package.json
的数组cordovaPlugins
中列出)
提示:运行cordova plugin ls
以获取您需要重新添加的内容列表。
我使用 Ionic 所以我只使用了这个命令:ionic state restore --plugins
并且瞧瞧问题永远解决了(我希望)。
<强> PS。仅供参考,我们不以管理员身份运行cmd,这可能是导致iOS应用程序出现问题的原因......
从Navid Harandi's answer了解问题的根源。