При написании приложения «Чертежи», в котором я использую RequireJS для загрузки модулей (я использую Visual Studio 2015).Ошибка машинописного + RequireJS при загрузке плагина
Я могу легко загрузить практически все модули из классов .ts, которые я написал для внешних библиотек, используя их .d.ts-файлы.
Но моя проблема начинается там, где я хочу загрузить плагин для jquery.
Я использую типизирующий файл для библиотеки, но логически нет определений модулей в файле .d.ts, потому что это просто плагин для jquery.
Я следовал рекомендации для прокладки библиотеки загрузки из RequireJS website так:
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"]);
И по RequireJS website:
Прокладка конфигурации только устанавливает код отношения. Чтобы загрузить модули, которые являются частью или используют конфигурацию прокладки, необходим нормальный вызов require/define. Настройка прокладки сама по себе не вызывает загрузку кода.
Теперь ни один из следующих работ для загрузки плагина (даже после перемещения jquery.pjax.dt рядом с jquery.pjax.js):
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");
Компилятор жалуется с ошибкой Cannot find module "jquery.pjax"
или File C:/foo/bar/jquery.pjax.d.ts is not a module
.
Приложение app.ts не скомпилируется, если существует какой-либо из приведенных выше кодов, и когда я их удаляю, плагин не загружается.
Относительно того, что я использую несколько импортных файлов в своем файле app.ts, и будет больше, я предпочитаю использовать стиль загрузки модуля import Foo = require("foo")
или import * as Foo from "foo"
, не вписывая функцию AMD define вручную.
Также я использую управление пакетами Nuget, и я предпочитаю не редактировать/перемещать внешние .d.ts или .js файлы вручную.
Может ли кто-нибудь помочь мне понять это, пожалуйста?
Ну, это очень всеобъемлющий ответ. Подтверждение как ответ сейчас. Благодарю. :) –
Я ответил на что-то подобное, используя defintyped, чтобы проверить это http://stackoverflow.com/questions/21179144/how-do-you-setup-a-require-js-config-with-typescript/42955298#42955298, а Тим правильно! – zobidafly