Beim Schreiben einer Typescripts-Anwendung, in der ich RequireJS zum Laden der Module verwende (ich verwende Visual Studio 2015).Typescript + RequireJS Compilerfehler beim Laden des Plugins
Ich kann problemlos laden fast alle Module entweder aus .ts-Klassen, die ich selbst geschrieben von externen Bibliotheken mit ihren Typisierung .d.ts-Dateien.
Aber mein Problem beginnt, wo ich ein Plugin für jquery laden möchte.
Ich verwende die Tippdatei für die Bibliothek, aber logisch gibt es keine Moduldefinitionen in der .d.ts-Datei, weil es nur ein Plugin für jquery ist.
Ich habe die Empfehlungen für Shim Bibliothek Laden von RequireJS website wie folgt gefolgt:
requirejs.config({
baseUrl: "Scripts",
paths: {
"jquery": "jquery-2.2.3",
"jquery.pjax": "jquery.pjax"
},
shim:
{
"jquery.pjax":
{
deps: ["jquery"],
exports: "jQuery.fn.pjax"
}
}
});
require(["app"]);
Und nach dem RequireJS website:
Die Scheibe Config setzt nur Code Beziehungen auf. Um Module zu laden, die Teil einer Shim-Konfiguration sind oder diese verwenden, wird ein normaler Request/Define-Aufruf benötigt. Das Einstellen von Shim selbst löst keinen Code zum Laden aus.
nun weder der folgenden Arbeit zum Laden des Plug-in (auch nach dem jquery.pjax.dt neben den jquery.pjax.js bewegen):
import * as pjax from "jquery.pjax";
import pjax = require("jquery.pjax");
import pjax = require("./jquery.pjax");
import pjax = require("jquery.pjax.js");
import pjax = require("./jquery.pjax.js");
Compiler beschwert sich mit dem Fehler Cannot find module "jquery.pjax"
oder File C:/foo/bar/jquery.pjax.d.ts is not a module
.
Die app.ts wird nicht kompiliert, solange einer der obigen Codes existiert und wenn ich sie entferne, wird das Plugin nicht geladen.
In diesem Zusammenhang verwende ich mehrere Importe in meiner app.ts Datei und es wird mehr geben, ich bevorzuge import Foo = require("foo")
oder import * as Foo from "foo"
Modul laden Stil im Gegensatz zum Schreiben der AMD Define-Funktion manuell.
Auch ich benutze Nuget Paket-Management und ich bevorzuge es, externe. D.ts oder. Js-Dateien manuell zu bearbeiten/zu verschieben.
Kann mir bitte jemand dabei helfen?
Nun, das ist eine sehr umfassende Antwort. Bestätigung als Antwort jetzt. Vielen Dank. :) –
Ich habe etwas Ähnliches mit Hilfe von http://stackoverflow.com/questions/21179144/how-do-you-setup-a-require-js-config-with-typescript/42955298#42955298 und Tim beantwortet Recht! – zobidafly