Модуль импорта узлов с systemJs в файле машинописного текста

Итак, я попытался импортировать модуль узла (immutablejs) в свой файл машинописного текста:

/// <reference path="../node_modules/immutable/dist/immutable.d.ts" />
import { Map } from 'immutable';
var myMap = Map();

Вот мои теги сценария в моем index.html:

<script src="node_modules/systemjs/dist/system.js"></script>
<script src="node_modules/typescript/lib/typescript.js"></script>
<script>
    System.config({
        transpiler: 'typescript',
        packages: {
            src: {
                defaultExtension: 'ts'
            }
        }
    });
    System
    .import('src/main.ts')
    .then(null, console.error.bind(console));
</script>

Пока intellisense работает в VS Code, мой браузер сообщает мне, что не может найти неизменяемый: system.src.js: 1057 GET http://localhost:3000/immutable/ 404 (не найдено)

Импорт самописного модуля машинописного текста с относительным путем просто сработал.

Что я делаю неправильно?


person r4ph43l    schedule 04.08.2016    source источник


Ответы (1)


Наличие правильных определений типов, удовлетворяющих компилятору машинописного текста, не настраивает systemjs на то, чтобы знать, где загрузить реальный код javascript для immutablejs.

Когда вы используете systemjs, ваша очередь соответствующим образом настроить systemjs, чтобы он знал, откуда загружать библиотеки. Если вы этого не сделаете, он попытается загрузить импортированный модуль как файл с сервера, имя которого совпадает с именем вашего импорта. См. Этот ответ для точно такой же проблемы:

Как настроить SystemJs для работы ImmutableJs в проекте Angular 2

Дополнительные сведения о настройке systemjs см. В документации здесь: https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#map

Вы также можете опустить путь ссылки для файла d.ts, когда ваш tsconfig настроен таким образом, что он будет искать node_modules автоматически, или с помощью такого инструмента, как набор текста, для установки определений для библиотек, которые не предоставляют некоторые типы ввода с их модулем. (См. Здесь: https://github.com/typings/typings - но это не должно быть требуется для immutablejs).

person Andreas Jägle    schedule 04.08.2016
comment
Спасибо! system.config.js была проблемой! - person r4ph43l; 05.08.2016