2016-07-09 27 views
7

Sto testando dattiloscritto con jquery, ma quando compilo il file test.ts, mi dà sempre un errore che indica: Impossibile trovare il nome '$'.

Ho già importato jquery & aggiunto il suo riferimento di definizione. Se si utilizza import $ = require("jquery") nel file , si verificherà un altro errore "Cannot find module jquery" durante la compilazione di tsc. Tuttavia, la cartella JQuery esiste già nella cartella node_modules.

Qualcuno sa qual è il modo corretto di usare jquery in dattiloscritto?

Di seguito i miei passi:

  1. Installare jquery utilizzando npm install jquery --save
  2. Installare tipizzazioni definizione & jquery utilizzando typings install --global --save dt~jquery
  3. Aggiungi riferimento jquery in cima alla test.ts /// <reference path="../../../typings/globals/jquery/index.d.ts" />

TSconfig .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

Come si compila il progetto? Inoltre sembra che la tua definizione 'tsconfig.json' sia sbagliata. Non è possibile utilizzare sia 'exclude' che' files' (in questo caso i 'file' vinceranno, quindi forse il percorso è sbagliato). Inoltre non è necessario '///

risposta

11

Non so se aiuta, ma ho risolto lo stesso problema per il mio datepicker.

Per prima cosa ho installato jQuery con questo comando: npm install --save-dev @types/jquery

quindi aggiungere le dipendenze nel file angolare-cli.json:

"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" 
     ] 

Penso aggiungendo la parte jQuery potrebbe funzionare per voi. Perfavore fammi sapere se funziona.

+5

'npm install --save-dev @ types/jquery' risolve il problema. Grazie. – Shikhar

+0

Prego, fratello. Sono contento che ci abbia aiutato. –

7

Se trovate questi errori il 90% del tempo la sua causa di versioni problema di tipo @/jquery

prova ad eseguire:

npm install jquery --save 

Poi nel app.module.ts:

import * as $ from 'jquery'; 

Quindi eseguite:

npm install @types/[email protected] 

e si dovrebbe essere pronti ad andare.

+0

Questo ha funzionato per me anche se dovevo mettere jquery in una stringa come 'import * as $ da" jquery ";'. IntelliJ lo evidenzia in grigio come importazione inutilizzata, ma l'app verrà compilata solo con questa linea. – hughjdavey

Problemi correlati