android - 未捕获的语法错误意外标记 main.js 选择器 : 'page-home' , 模板:- ionic3

标签 android ionic-framework ionic3

在 Android 6 Marshmallow 上,apk 构建时它工作正常 但在 Android Lollipop 中的“选择器:”代码行处出错

错误:

Uncaught SyntaxError: Unexpected token ILLEGAL in main.js warning : "The key "viewport-fit" is not recognized and ignored"

不知道怎么回事。

 `HomePage = __decorate([
        Object(__WEBPACK_IMPORTED_MODULE_0__angular_core__["m" /* Component */])({
            selector: 'page-home',template:/*ion-inline-start:"D:\2fb\src\pages\home\home.html"*/`\n  \n    \n      Facebook\n    \n  \n\n\n\n  \n    Facebook Login Example\n  \n\n  \n    Log In with Facebook\n  \n\n  \n    \n    \n      \n        {{ userProfile.displayName }}\n      \n      

\n The UID for this new user is {{userProfile.uid}} and the email is {{userProfile.email}}\n

\n \n \n`/*ion-inline-end:"D:\2fb\src\pages\home\home.html"*/ }), __metadata("design:paramtypes", [__WEBPACK_IMPORTED_MODULE_2_ionic_angular__["d" /* NavController */], __WEBPACK_IMPORTED_MODULE_1__ionic_native_facebook__["a" /* Facebook */]]) ], HomePage);`

最佳答案

当部署到 Android 4.4.4 时,我在使用 3.9.2 时遇到了类似的问题。可能的原因是用`(ASCII 96) 括起来的模板字符串不是常见的单引号(ASCII 39)。

我的丑陋修复是通过使用 after prepare 脚本将 ` 替换为 ' ,如下所示:

#!/usr/bin/env node

var fs = require('fs');
var path = require('path');

var rootdir = process.argv[2] + '/../';

function replace_string_in_file(filename, to_replace, replace_with) {
  var data = fs.readFileSync(filename, 'utf8');

  var result = data.replace(new RegExp(to_replace, "g"), replace_with);
  fs.writeFileSync(filename, result, 'utf8');
}

var target = "dev";
if (process.env.TARGET) {
  target = process.env.TARGET;
}

var replaceConfig = {
  "platforms/android/assets/www/build/main.js" : {
    "dev": {
      "/`": "/'",
      "`/": "'/"
    }
  }
};
for (var filename in replaceConfig) {
  var fullFilename = path.join(rootdir, filename);
  if (fs.existsSync(fullFilename)) {
    var replaceTexts = replaceConfig[filename];
    for (var key in replaceTexts[target]) {
      console.log(target + " replacing in file: " + fullFilename + " " + key + " as " + replaceTexts[target][key]);
      replace_string_in_file(fullFilename, key, replaceTexts[target][key]);
    }
  } else {
    console.log("missing: " + fullFilename);
  }
}

它解决了我的问题。希望这会有所帮助。

关于android - 未捕获的语法错误意外标记 main.js 选择器 : 'page-home' , 模板:- ionic3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47262470/

相关文章:

android - 在 ViewPager 中加载具有不同数据的相同 fragment

javascript - Ionic Service Worker 发送 GET 选项

javascript - 如何将我点击的值传递到下一页

angular - AbstractControl 类型的参数不能分配给字符串类型的参数

android - 如何在 Android API 低于 20 的 Android Studio 上运行代码?

android - 是否可以在 Room 中忽略基本更新中的字段

java - 广播 Action : ACTION_CAMERA_BUTTTON

firebase - cordova-plugin-fcm 使用 ios 真实设备( ionic )在 token 中给出 null

javascript - 当互联网关闭时启用离线功能

ionic3 - Ionic 3 - 启动画面尺寸