2016-09-05 5 views
2
nicht gefunden

Filter.ts, mustache.js und redux.3.5.2.js befinden sich im selben Verzeichnis (/ Scripts). Der Filter.ts hat den folgenden Code:Typoskript Modul

///<reference path="./typings/mustache.d.ts" /> 
import Mustache = require("mustache"); 
import Redux = require("redux.3.5.2"); 

In Visual Studio Code einen Fehler auf redux zeigt nicht Modul finden. Wenn ich es kompiliere sagt es:

Filter.ts (13,24): Fehler TS2307: Kann Modul 'redux.3.5.2' nicht finden.

Also wie kann es Schnurrbart, aber nicht Reduce finden?

Ich habe noch keine Tippdatei hinzugefügt, aber wie würde das den Import der Datei beeinflussen? Es wird noch nirgendwo im Code verwendet? Das Entfernen der Schnurrbarteingabe führt auch nicht dazu, dass das Typoskript die Datei nicht findet.

$ ls *.js 
requirejs.2.1.22.js Filter.ts    mustache.js   redux.3.5.2.js 

[Update]

Hat ein Update von Typoskript:

npm install -g typescript 

tsc.cmd mir jetzt erzählt habe ich 1.8.10 Version

My task.json Aussehen wie:

{ 
    "version": "0.1.0", 
    "command": "tsc.cmd", 
    "isShellCommand": true, 
    "showOutput": "silent", 
    "problemMatcher": "$tsc" 
} 

und tsconfig.json wie folgt aussieht:

{ 
    "compilerOptions": { 
     "target": "es5", 
     "watch": true, 
     "module": "amd", 
     "removeComments": true, 
     "sourceMap": false, 
     "outDir": "." 
    } 
} 

Jetzt Visual Studio Code klagt es keinen meiner benötigte Module nicht finden können und tsc.cmd klagt es noch nicht Modul ‚redux.3.5.2‘ beinhaltet. Nach ein paar Neustarts von Visual Studio Code sind diese Fehler glücklicherweise verschwunden, aber es ist immer noch nicht in der Lage Redux zu finden. Ich bin mir nicht sicher, ob es die Datei finden kann oder etwas in der Datei dieses Problem verursacht, da der Fehler nicht angibt, was das genaue Problem ist.

+0

Verwenden Sie npm, um Ihre Module zu installieren? –

+0

@PelleJacobs Nein, ich habe den Inhalt in das Skriptverzeichnis kopiert. Dies ist ein Client-Skript. – HMR

+0

Ich würde versuchen, npm zu verwenden. Es tut einfach so viel für dich. Redux stellt auch eine Deklarationsdatei mit seinem Paket zur Verfügung. –

Antwort

1

Also, wie ist es in der Lage Schnurrbart zu finden, aber nicht redux

kann ich in Ihrem Code sehen Sie ///<reference path="./typings/mustache.d.ts" /> haben. Sie haben also Typen für Schnurrbart und daher ist es gefunden. Ich sehe keine Typisierungen für Redux in Ihrer Probe, daher nicht gefunden.

+1

Vielen Dank für Ihre Antwort, ich kann die Eingabe von Schnurrbart entfernen oder die Eingabe für redux hinzufügen. Derselbe Fehler. – HMR

+0

Hallo, ich sehe jetzt, dass die Javascript-Datei nichts tut und es ist die Typoskript-Definitionsdatei, die da sein muss. Heute habe ich versucht, immutable.js hinzuzufügen und hatte wieder keine Produktivität, weil sich TypeScript und Visual Studio Code erneut beschweren. Sehen Sie meine Antwort auf, wie ich denke, dass es funktioniert, aber ich denke nicht, dass jemand weiß, wie es tatsächlich funktioniert, oder irgendeine Dokumentation darüber, die die vollständige Zerbrochenheit von Schreibmaschine in dieser Beziehung erklären würde. – HMR

0

Die JavaScript-Datei spielt keine Rolle, legen Sie eine Definitionsdatei (zum Beispiel: module-name.d.ts) im Stammverzeichnis.

Jetzt können Sie Ihre ts-Datei enthalten:

///<reference path="module-name.d.ts" /> 
import redux = require("module-name"); 

In benötigen.Config können Sie wie folgt vorgehen:

///<reference path="../typings/module-name.d.ts" /> 
import redux = require("typings/module-name"); 

Wenn eine andere ts-Datei erfordert dies:

require.config = { 
    baseUrl:settings.appRoot, 
    urlArgs: "version=" + settings.version, 
    paths: { 
    "module-name" : settings.appRoot + "/Scripts/SomePlace/some-module", 
... 

Wenn Sie die Typdefinition in einem Verzeichnis abgelegt (zB Typisierungen), dann die TS-Datei würde wie folgt aussehen Modul aber die TS-Datei in ein anderes Verzeichnis ist (lassen Sie uns einen tieferen sehen), dann können Sie folgendes tun:

///<reference path="../../typings/module-name.d.ts" /> 
import redux = require("typings/module-name"); 

Ihre require.config wird wie folgt aussehen:

require.config = { 
    baseUrl:settings.appRoot, 
    urlArgs: "version=" + settings.version, 
    paths: { 
    "typings/module-name" : settings.appRoot + "/Scripts/SomePlace/some-module", 
... 
Verwandte Themen