SystemJS с конфликтом Typescript?

Я пытаюсь настроить SystemJS для существующего приложения AngularJS + Typescript.

У меня проблема с загрузкой модуля: Когда я использую этот синтаксис:

import module1 from './path-to-module1'

Компилятор TS доволен, но SystemJS не находит этот модуль. После небольшого расследования я нашел это, в документации SystemJS:

System.defaultJSExtensions = true;

// requests ./some/module.js instead
System.import('./some/module');

Круто, теперь и компилятор TS, и SystemJS работают. Но в документации SystemJS говорится:

Обратите внимание, что это свойство совместимости для перехода к использованию явных расширений, и в будущем оно будет объявлено устаревшим.

Итак, я понял, что должен добавить расширение .js к загрузке моего модуля, например так (удалив флаг 'defaultJSExtensions = true'):

import module1 from './path-to-module1.js'

Теперь SystemJS знает, как загрузить мой модуль, компилятор TS говорит:

Cannot find module './path-to-module1.js'

Как мне заставить ТС понять это? Должен ли я вручную добавлять все свои модули в файл *.d.ts? Как?

10x!

ИЗМЕНИТЬ

Я нашел этот пост, который, я думаю, должен быть тем, что мне нужно сделать. Я нашел это в своем файле Grunt:

typescript: {
      build: {
        src: ...,
        outDir: '...',
        reference: 'reference.ts',
        options: {
          target: 'es5',
          sourceMap: false,
          declaration: false,
          removeComments: false,
          experimentalDecorators: true,
          module: 'commonjs'
        }
      }
    }

Но замена commonjs на system не помогла..


person Yaniv Efraim    schedule 30.10.2015    source источник


Ответы (1)


Не волнуйтесь, документация по SystemJS немного вводит в заблуждение... Как только они удалят расширение JSExtension по умолчанию, все, что вам нужно сделать, чтобы пометить каталог кода как пакет (в конфигурации systemJS). Вы можете прочитать об этом здесь

В любом случае, имя файла без расширения соответствует синтаксису импорта, поэтому SystemJS должен будет поддерживать его, как я уже сказал, они будут поддерживать его, используя другой способ конфигурации.

person gilamran    schedule 30.10.2015