【问题标题】:Karma/Jasmine failure: "ReferenceError: $ is not defined" in Angular 11Karma/Jasmine 失败:Angular 11 中的“ReferenceError:$ 未定义”
【发布时间】:2022-02-01 12:01:20
【问题描述】:

此故障仅在 Angular 11 应用程序中使用“ng test”而不是“ng build”或“ng serve”的测试模式下出现。我尝试了所有可用的解决方案,但没有人为我工作。

jquery的component.ts相关代码

declare var $: any;

angular.json 包含脚本和样式

 "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/angular-app",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.app.json",
            "aot": true,
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
          
            "styles": [
              "./node_modules/bootstrap/dist/css/bootstrap.min.css",
              "src/assets/css/jquery-ui.min.css",
              "src/assets/css/style.css"
            ],
            "scripts": [
              "./node_modules/jquery/dist/jquery.min.js",
              "./node_modules/popper.js/dist/umd/popper.min.js",
              "./node_modules/bootstrap/dist/js/bootstrap.js",
              "src/assets/js/jquery-ui.min.js",
              "src/assets/js/sidebarResponsive.js"
            ]

【问题讨论】:

    标签: angular


    【解决方案1】:

    在 angular.json 中,在“test”中添加 jquery,而不是在“build”中:

    "test": {
      "builder": "@angular-devkit/build-angular:karma",
      "options": {
      ...
      "scripts": ["node_modules/jquery/dist/jquery.js"]
    }
    

    【讨论】:

    • 试过但没用。
    • 几天前我遇到了确切的问题,这是我唯一需要添加以使其正常工作的内容。 “不工作”是指“$”在您的测试中仍未定义?
    • 解决方案运行良好。还有一个问题。
    • 提出这个问题。这样人们就可以联系到您的答案。
    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 2015-02-10
    • 2018-10-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 2017-09-25
    相关资源
    最近更新 更多