Búsqueda de sitios web

javascript - Uglifyjs - Token inesperado: nombre


Trabajando con Angular-cli, estoy utilizando un paquete llamado:

TPlink-Cloud-Api

Cuando construyo en modo de desarrollo ng serve, no recibo errores y la aplicación funciona. Sin embargo, cuando despliego en Heroku o ejecuto ng build --prod, obtengo el siguiente error:

Error

ERROR in vendor.e51673ef8f2bd683eebc.bundle.js from UglifyJs
Unexpected token: name (LB100) [vendor.e51673ef8f2bd683eebc.bundle.js:16119,6]

LB100 parece ser un archivo javascript que se requiere en el archivo main.js de este paquete. Si lo comento ya que no lo estoy usando en mi aplicación, otro termina apareciendo en el error.

Aquí hay un ejemplo del archivo LB100.js, tal vez alguien pueda ver alguna sintaxis que no funcione en el actual 'ugilifyjs'. Si ves el problema, ¿cómo lo resuelvo?

El siguiente LB100.js se carga en Tplink.js mediante una declaración require:

var LB100 = require("./lb100.js")

LB100.js

var TPLinkDevice = require('./device.js');

// Should work for LB100, LB110 & LB120
class LB100 extends TPLinkDevice {
  constructor(tpLink, deviceInfo){
    super(tpLink, deviceInfo);
  }

  async transition_light_state(on_off, brightness){
    // on_off: 1 for On, 0 for Off
    // brightness: 0-100
    return await super.tplink_request( {
      "smartlife.iot.smartbulb.lightingservice": {
        "transition_light_state": { "on_off": on_off, "brightness": brightness } }
      }
    )
  }

}

module.exports = LB100;

Después de algunas investigaciones, parece ser un error con cierta sintaxis, mientras que el paquete no se compila bien con ES5. Cambié el objetivo en mi 'TSConfig' a ES6, pero todavía no funcionó y además apareció un error adicional relacionado con el AppModule.

TSConfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "types": [
      "node"
    ],
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom",
      "es6",
      "es2015"
    ]
  }
}

Como puedes ver, también incluí Libs ya que esto ayudó a otros. Sin embargo, no he hecho ningún progreso hasta ahora. Estoy usando la última versión de Node.

Package.json

{
  "name": "temp-sensor",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "node server.js",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "postinstall": "ng build --aot -prod"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^4.2.4",
    "@angular/cli": "1.3.2",
    "@angular/common": "^4.2.4",
    "@angular/compiler": "^4.2.4",
    "@angular/compiler-cli": "^4.2.4",
    "@angular/core": "^4.2.4",
    "@angular/forms": "^4.2.4",
    "@angular/http": "^4.2.4",
    "@angular/language-service": "^4.2.4",
    "@angular/platform-browser": "^4.2.4",
    "@angular/platform-browser-dynamic": "^4.2.4",
    "@angular/router": "^4.2.4",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "^6.0.101",
    "angularfire2": "5.0.0-rc.3",
    "bootstrap": "4.0.0-beta.2",
    "codelyzer": "~3.1.1",
    "core-js": "^2.4.1",
    "firebase": "4.6.0",
    "font-awesome": "^4.7.0",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "jquery": "^3.2.1",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "popper": "^1.0.1",
    "protractor": "~5.1.2",
    "rxjs": "^5.4.2",
    "tplink-cloud-api": "^0.2.0",
    "ts-node": "~3.2.0",
    "tslint": "~5.3.2",
    "uglify": "^0.1.5",
    "uglifyjs-webpack-plugin": "^1.2.0",
    "zone.js": "^0.8.14",
    "typescript": "^2.7.2"
  },
  "engines": {
    "node": "9.5.0",
    "npm": "5.6.0"
  },
  "devDependencies": {

  }
}

Cargo este paquete en un servicio:

Cargando el paquete:

declare var require: any;
const TPLink = require('../../../node_modules/tplink-cloud-api');

También he ejecutado NPM Update...

Estoy completamente perdido en este punto. Cualquier ayuda es apreciada