升级到4角破门实现外部JS的依赖
问题描述:
当我升级我的角度应用角4以下事情发生了:升级到4角破门实现外部JS的依赖
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文件中删除我的脚本标记,而是包括他们进入角cli.json文件:
declare let Keycloak: any;
static init(): Promise<any> {
let keycloakAuth: any = new Keycloak("app/js/keycloak/keycloak.json");
// other code here
}
0:
"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"
]
我现在下面的代码得到一个错误
我做错了什么? JavaScript文件的导入或此对象的声明。
随着Angular 2的完美运作。
让我知道是否需要提供更多信息来解决此问题。
答
我会安装Keycloak JS以及its typing通过NPM:现在
npm install --save keycloak-js @types/keycloak-js
,您可以导入它作为填充工具库 - 您的应用程序初始化之前应加载库。
在./src/polyfills.ts,加
import 'keycloak-js' // <- use the keycloak foldername in ./node_modules folder
因为我们还安装了类型,你应该甚至删除declare let Keycloak
线,因为打字稿将使用@types/keycloak-js
包提供强类型。最后,从.angular-cli.json文件的脚本数组中删除keycloak行。
您现在应该可以在项目中使用Keycloak。
感谢您的回答,我会尽快尝试! – Veslav
我认为它工作,我现在唯一的错误是“zone.js:643未处理的承诺拒绝:clientId失踪;区域:;任务:Promise.then;值:clientId失踪”。 这可能是错误版本的类型,我会尽力解决它。 –
Veslav