Псевдоним пути импорта TypeScript

В настоящее время я работаю над приложением TypeScript, которое состоит из нескольких модулей Node, написанных на TypeScript, которые установлены вnode_modules каталог.

Прежде чем продолжить, я хотел бы отметить, что я использую TypeScript 2.0, я не против использования версии 2.1 dev, если это необходимо. Я просто хочу, чтобы это работало.

Структура каждого Node-модуля примерно такая:

dist/
    es2015/
        index.js
        utils/
            Calculator.js
            Calculator.d.ts
            Date.js
            Date.d.ts
            Flatpack.js
            Flatpack.d.ts
src/
    index.ts
    utils/
        Calculator.ts
        Date.ts
        Flatpack.ts

Папка dist является сгенерированным источником, и этот путь настраивается с помощьюoutDir внутри моегоtsconfig.json файл. Я также настроилmain собственность в моемpackage.json бытьdist/es2015/index.js.

Важные вещи, на которые стоит обратить внимание:

В моем проекте я используюmoduleResolution типnodeЯ использую TypeScript 2.0Я не спрашиваю, как импортировать файл из пакета. Я устанавливаю пакет через Npm, а затем импортирую его черезpackagename/ из приложения, которое использует этот модуль.

Теперь приходит мой вопрос / проблема. При импорте файлов из этого модуля я хотел бы иметь возможность сделать это:

import {Sin, Cos, Tan} from "common-utils/utils/Calculator";

Однако файл не может быть преобразован вdist/es2015/utils каталог. В идеале я бы хотел, чтобы мой импорт разрешался из этого конкретногоdist папку, а не из корня, что, как представляется, происходит.

Приведенный выше импорт должен быть записан следующим образом, чтобы заставить его работать:

import {Sin, Cos, Tan} from "common-utils/dist/es2015/utils/Calculator";

Тем не менее, написаниеdist/es2015 каждый раз не идеален, и некоторые импортные материалы выглядят очень долго. Есть ли способ настроить модуль для разрешения наdist/es2015 каталог? Я не хочу вставлять переопределения внутри моего проекта, в идеале каждый модуль должен указывать, откуда разрешаются файлы.

Если вы все еще не уверены в том, что я спрашиваю (и я извиняюсь, если это сбивает с толку) в Jspm, когда вы создаете плагин / модуль для использования с Jspm, вы можете указать внутриpackage.json для модуля что-то вроде следующего:

  "jspm": {
    "registry": "npm",
    "jspmPackage": true,
    "main": "my-module",
    "format": "amd",
    "directories": {
      "dist": "dist/amd"
    },

Я ищу эквивалент выше в TypeScript (если он существует). Директива сопоставления, поэтому, когда запускается конечный пользовательnpm install my-cool-package и затем в своем приложении пытается что-то импортировать, все импорта по умолчанию разрешаются вcommonjs каталог (приведенный выше пример для Jspm использует amd, но тот же посыл).

Это возможно, или я что-то здесь неправильно понимаю? Я знаю, что некоторые новые функции сопоставления путей были добавлены в последнюю версию, но документации по их использованию практически не существует.

Ответы на вопрос(2)

Ваш ответ на вопрос