2016-07-09 4 views
7

Ich teste Typescript mit jquery, aber wenn ich die Datei test.ts kompiliere, gibt es immer einen Fehler, der anzeigt: Kann den Namen '$' nicht finden.

Ich habe bereits importiert jquery & hinzugefügt seine Definitionsreferenz. Wenn ich import $ = require("jquery") in meiner test.ts Datei verwende, wird ein weiterer Fehler "Cannot find module jquery" auftreten, wenn Sie die tsc kompilieren. Der JQuery-Ordner ist jedoch bereits im Ordner node_modules vorhanden.

Weiß jemand, was ist der richtige Weg, um jquery in Typoskript zu verwenden?

Im Folgenden finden Sie meine Schritte:

  1. Installieren jquery npm install jquery --save
  2. Installieren Typisierungen & jquery Definition typings install --global --save dt~jquery
  3. Add jquery Referenz an der Spitze der test.ts /// <reference path="../../../typings/globals/jquery/index.d.ts" />

TSconfig mit Verwendung .json

{ 
    "compilerOptions": { 
     "jsx": "react", 
     "outDir": "./dist", 
     "sourceMap": true, 
     "noImplicitAny": true, 
     "module": "commonjs", 
     "target": "es5", 
     "experimentalDecorators": true 
    }, 
    "exclude": [ 
     "node_modules" 
    ], 
    "files": [ 
     "./typings/index.d.ts", 
     "./src/wo/tests/test.ts", 
    ] 
} 

test.ts

/// <reference path="../../../typings/globals/jquery/index.d.ts" /> 

let test:any=$("div"); 
+2

Wie kompilieren Sie das Projekt? Es scheint auch, dass Ihre 'tsconfig.json' Definition falsch ist. Sie können nicht sowohl 'exclude' als auch' files' verwenden ('files' gewinnen in diesem Fall, also ist der Pfad möglicherweise falsch). Auch brauchen Sie nicht '///

Antwort

11

Ich weiß nicht, ob es hilft, aber ich löste das gleiche Problem für meine Datepicker.

Zuerst installierte ich jQuery mit diesem Befehl:

"styles": [ 
      "../node_modules/bootstrap/dist/css/bootstrap.css", 
      "../node_modules/font-awesome/css/font-awesome.css", 
      "../node_modules/ng2-datetime/src/vendor/bootstrap-datepicker/bootstrap-datepicker3.min.css", 
      "styles.css" 
     ] 

"scripts": [ 
      "../node_modules/jquery/dist/jquery.js", 
      "../node_modules/ng2-datetime/src/vendor/bootstrap-datepicker/bootstrap-datepicker.min.js" 
     ] 

Ich denke, das Hinzufügen der jQuery Teil funktionieren könnte für Sie: npm install --save-dev @types/jquery

dann die Abhängigkeiten in Ihrer Winkel cli.json Datei hinzufügen. Bitte lassen Sie mich wissen, wenn es funktioniert.

+5

' npm install --save-dev @ types/jquery' löst das Problem. Vielen Dank. – Shikhar

+0

Gern geschehen, Bruder. Froh, dass es geholfen hat. –

7

Wenn Sie finden diese Fehler 90% der Zeit sein, weil der Versionierung Problem von @ types/jquery

Try running:

npm install jquery --save 

Dann in app.module.ts:

import * as $ from 'jquery'; 

Dann laufen:

npm install @types/[email protected] 

Und Sie sollten gehen bereit sein.

+0

Dies funktionierte für mich, obwohl ich jQuery in eine Zeichenfolge wie 'importieren * als $ von" jquery "setzen musste;'. IntelliJ markiert es grau als nicht verwendeten Import, aber die App wird nur mit dieser Zeile kompilieren. – hughjdavey