Javascript 升级到Angular 4,实现外部JS依赖关系

Javascript 升级到Angular 4,实现外部JS依赖关系,javascript,angular,typescript,keycloak,Javascript,Angular,Typescript,Keycloak,当我将angular应用程序升级到angular 4时,发生了以下情况: Uncaught ReferenceError: Keycloak is not defined at Function.webpackJsonp.../../../../../src/app/services/auth/auth.service.ts.AuthService.init (auth.service.ts:22) at Object.../../../../../src/mai

当我将angular应用程序升级到angular 4时,发生了以下情况:

Uncaught ReferenceError: Keycloak is not defined
        at Function.webpackJsonp.../../../../../src/app/services/auth/auth.service.ts.AuthService.init (auth.service.ts:22)
        at Object.../../../../../src/main.ts (main.ts:9)
        at __webpack_require__ (bootstrap 1f6d90b…:54)
        at Object.1 (polyfills.ts:19)
        at __webpack_require__ (bootstrap 1f6d90b…:54)
        at webpackJsonpCallback (bootstrap 1f6d90b…:25)
        at main.bundle.js:1
我已从index.html文件中删除了我的脚本标记,而是将它们包含在angular-cli.json文件中:

  "scripts": [
    "./app/js/keycloak/keycloak.js",
    "./app/js/wavesurfer/wavesurfer.min.js",
    "./bower_components/bootstrap/dist/css/bootstrap.min.css",
    "./app/js/bootstrap/bootstrap.min.js",
    "./app/js/bootstrap/jquery.min.js"
  ]
我现在在以下代码中得到一个错误:

declare let Keycloak: any;

static init(): Promise<any> {
   let keycloakAuth: any = new Keycloak("app/js/keycloak/keycloak.json");

   // other code here
}
声明let keydepose:any;
静态init():承诺{
让keydapeauth:any=newkeydeport(“app/js/keydeport/keydeport.json”);
//这里还有其他代码
}
我做错了什么?javascript文件的导入或此对象的声明。

对于Angular 2,这一点非常有效

如果我需要提供更多信息来解决此问题,请告诉我。

我将通过npm安装:

npm install --save keycloak-js @types/keycloak-js
现在,您可以将其作为polyfill库导入,该库应该在应用程序初始化之前加载

在./src/polyfills.ts中,添加


import'keydape js'//谢谢你的回答,我很快就会试试!我认为它是有效的,我现在遇到的唯一错误是“zone.js:643未处理的承诺拒绝:clientId缺失;zone:;Task:Promise.then;Value:clientId缺失”。这可能是打字的错误版本,我将尝试解决它。
import 'keycloak-js' // <- use the keycloak foldername in ./node_modules folder