AOT: Error: Uncaught (in promise): TypeError: Cannot read property '$' of undefined
AOT: Error: Uncaught (in promise): TypeError: Cannot read property '$' of undefined
我正在尝试在 AOT 生产构建中发布 Angular4 前端项目。在长时间使用 angular cli 以 aot 模式成功构建之后,我终于能够发布之前使用 "build prod --aot false" 发布的前端,并了解 AOT 和 JIT 之间的区别。不幸的是,当 webapp 在浏览器中启动时,我遇到了错误。
Error: Uncaught (in promise): TypeError: Cannot read property '$' of undefined
错误似乎与我在 app.module.ts 中的 jQuery(因为 $)有关。
'import * as $ from 'jquery';'
但我意识到这根本不是 jQuery 相关的,因为即使我完全删除了我的应用程序中的 jQuery 引用和用法,我仍然遇到相同的错误。
注意:如果前端是使用 "prod --aot true" 构建的,但当应用程序是使用 "prod --aot false"
构建时,我只会收到此错误
更新:我还意识到我在项目中有 SignalR 服务,它使用 $ 符号定义如下。
export class SignalrWindow extends Window {
$: any;
}
不确定发生了什么。任何帮助都会很棒!
使用 jquery 而不是安装依赖项的一种方法是将 jquery 脚本添加到 index.html
文件并创建一个 define
变量。
index.html
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
app.module.ts
declare var $: any;
这样做的缺点是,IntelliSense 无法使用 define 变量。
创建一个新的定义文件(例如:definitions.d.ts)并添加以下代码:
interface SignalrWindow extends Window {
$: any;
}
declare var window: SignalrWindow ;
我正在尝试在 AOT 生产构建中发布 Angular4 前端项目。在长时间使用 angular cli 以 aot 模式成功构建之后,我终于能够发布之前使用 "build prod --aot false" 发布的前端,并了解 AOT 和 JIT 之间的区别。不幸的是,当 webapp 在浏览器中启动时,我遇到了错误。
Error: Uncaught (in promise): TypeError: Cannot read property '$' of undefined
错误似乎与我在 app.module.ts 中的 jQuery(因为 $)有关。
'import * as $ from 'jquery';'
但我意识到这根本不是 jQuery 相关的,因为即使我完全删除了我的应用程序中的 jQuery 引用和用法,我仍然遇到相同的错误。
注意:如果前端是使用 "prod --aot true" 构建的,但当应用程序是使用 "prod --aot false"
构建时,我只会收到此错误更新:我还意识到我在项目中有 SignalR 服务,它使用 $ 符号定义如下。
export class SignalrWindow extends Window {
$: any;
}
不确定发生了什么。任何帮助都会很棒!
使用 jquery 而不是安装依赖项的一种方法是将 jquery 脚本添加到 index.html
文件并创建一个 define
变量。
index.html
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
app.module.ts
declare var $: any;
这样做的缺点是,IntelliSense 无法使用 define 变量。
创建一个新的定义文件(例如:definitions.d.ts)并添加以下代码:
interface SignalrWindow extends Window {
$: any;
}
declare var window: SignalrWindow ;