Наборните нагрузок внешнего модуля AMD AMD, угловой не определен
-
26-12-2019 - |
Вопрос
Я знаю, что уже есть несколько подобных вопросов по этой теме, но каким-то образом никто из них не помог. Я хочу использовать Angular.js в проекте, который использует потребности и типографы.
У меня есть модуль, где я использую угловой, чтобы создать сервисный модуль:
/// <reference path="../../../typings/angularjs/angular.d.ts" />
...
var services = angular.module('services', []);
...
export = services;
.
Этот код компилирует без ошибки, но в созданном файле JS есть angular.js зависимость не там:
define(["require", "exports"], function(require, exports) {
...
}
.
И когда я запускаю приложение, браузер жалуется: uncaft formateerror: угловой не определяется
Мое предположение, что как-то я должен импортировать угловые, помимо ссылки на него, но ни один из пути я попробовал.
Вот моя настройка require.js, если необходимо:
require.config({
paths: {
angular: '../lib/angular/angular',
...
},
shim: {
angular : {exports : 'angular'},
...
}
)}
.
Можешь мне помочь, что здесь не хватает? Спасибо.
Решение
Вы пытались добавить следующее в верхнюю часть вашего файла
/// <amd-dependency path="angular"/>
.
Это должно сделать компилятор TS добавлять угловой в список определений.
Другие советы
Когда вы используете ссылочный комментарий:
/// <reference path="../../../typings/angularjs/angular.d.ts" />
.
Вы говорите компилятору «Я обеспечу, чтобы эта зависимость была доступна во время выполнения».
Если вы хотите загрузить модуль, необходимо использовать вместо этого импорт ...
import angular = require('angular');
.
Установочный способ выполнения нуля - это установить файл angular.d.ts
рядом с фактическим файлом angular.js
, поэтому путь, который вы указываете в операторе импорта, одинаково в любом случае - в противном случае используйте ваш требуемый Config для Shimmyпуть.