簡體   English   中英

在角項目中設置jquery

[英]Setup jquery in angular project

我正在嘗試在angular 6項目中設置jquery,但是在ts文件中導入它時,我得到以下內容

錯誤:此模塊只能通過打開'allowSyntheticDefaultImports'標志並引用其默認導出來引用ECMAScript導入/導出

運行時錯誤是:

模塊'“/ types / jquery”'解析為非模塊實體,無法使用此結構導入。

這是我的打字稿代碼:

import { Component, OnInit } from '@angular/core';
import * as $ from 'jquery';
@Component({
  selector: 'app-anim',
  templateUrl: './anim.component.html',
  styleUrls: ['./anim.component.css']
})


export class AnimComponent implements OnInit {

  constructor() { }

  ngOnInit() {

    $(function() {
      $('.intro').addClass('go');

      $('.reload').click(function() {
        $('.intro').removeClass('go').delay(200).queue(function(next) {
          $('.intro').addClass('go');
          next();
        });

      });
  });

  }

}

我已經在我的tsconfig.json中添加了allowdefault導入,正如一些人所提到的.Below是我的tsconfig。

{
  "compileOnSave": false,
  "compilerOptions": {
    "paths": { "*": ["types/*"] },
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es5",
    "allowSyntheticDefaultImports": true,
    "typeRoots": [
      "node_modules/@types"
    ],

Anguar.json

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "textAnimation": {
      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "prefix": "app",
      "schematics": {},
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/textAnimation",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.app.json",
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "styles": [
              "src/styles.css"
            ],
            "scripts": ["./node_modules/jquery/dist/jquery.min.js"],
            "es5BrowserSupport": true
          },

我似乎無法弄清楚我還需要做什么才能讓jquery運行。請幫忙。 提前致謝

你已經使用angular.json腳本導入了jquery,所以我認為你可以使用jquery來聲明變量。

import { Component, OnInit } from '@angular/core';
declare var $: any;
...

首先,您需要安裝這兩個包

npm install jquery --save
npm install @types/jquery --save

然后在architect => build of angular.json文件的腳本部分為jquery lib添加路徑

"scripts": [
  "node_modules/jquery/dist/jquery.min.js"
]

然后最后將jquery添加到tsconfig.app.json的types部分。 如果我們想要angular.json文件,你可以改為另一個tsconfig文件(architect => build => tsConfig section)

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "types": ["jquery"]
  },
  "exclude": ["test.ts", "**/*.spec.ts"]
}

所以你不必像你這樣在你的組件中使用

declare var $: any;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM