Сопоставление пути импорта модуля typescript

Я не использую WebPack или другие, вместо этого пытаюсь использовать собственный браузер Система ES-Module (ESM).

В TypeScript - кодирование источника, относящегося к локальным установленным модулям NPM.

import * as React from "react";
import * as ReactDOM from "react-dom";

import { SubComponent } from './sub-component';

Тогда переданный код JavaScript:

import * as React from "react";
import * as ReactDOM from "react-dom";
import { SubComponent } from './sub-component';

Пока это не очень хорошо, потому что фактический путь для ссылки на выполнение с кодом JavaScript должен быть:

import * as React from "../esm/react.js";
import * as ReactDOM from "../esm/react-dom.js";

import { SubComponent } from "./sub-component.js";

(Примечание: у меня есть рабочие файлы ESM response / response-dom в этом коде и пути, поэтому транспилированный вывод должен быть именно этим кодом.)

Я прочитал https://www.typescriptlang.org/docs/handbook/module-resolution.html , но не знаю точно, что написать, чтобы установить сопоставление.

tsconfig.json, который не работает:

{
  "compilerOptions": { 
   //.........

    "baseUrl": ".",
    "paths": {
      "react": [
        "../esm/react.js"
      ],
      "react-dom": [
        "../esm/react-dom.js"
      ],
      "./sub-component": [
        "./sub-component.js"
      ],
    }
  }
}

Каков правильный путь? Спасибо.

В вашем tsconfig.json вы записывали эти пути к модулям или они были автоматически сгенерированы?

Turner Bass 10.08.2018 17:20

@TurnerBass Я написал сам для своей цели. Я не знал, что они могут быть созданы автоматически.

user10180218 10.08.2018 17:22

Ах я вижу. Тогда я думаю, что переданный JavaScript верен, это скорее относительные ссылки, которые отключены. Я бы посоветовал еще раз посмотреть, где расположены эти модули относительно имеющегося у вас baseUrl. Возможно, вы где-то пропустили каталог.

Turner Bass 10.08.2018 17:27

Кроме того, это не совсем та же проблема, но может дать некоторое представление. Пути в tsconfig.json

Turner Bass 10.08.2018 17:28

@TurnerBass Спасибо, но я прошу не подтверждать правильность транспилированного JavaScript, а как сделать транспилированный JavaScript желаемым способом, настроив tsconfig.json. Я тоже прочитал связанный вопрос.

user10180218 10.08.2018 17:36

Кроме того, мне просто интересно, есть ли какая-либо ситуация, когда переданный JavaScript неверен в соответствии с tsconfig.json, за исключением ошибки компилятора.

user10180218 10.08.2018 17:39

Это прискорбно, но вот две проблемы, поднятые на GitHub командой TS. Выпуск 1 и Выпуск 2

Turner Bass 10.08.2018 17:44

@TurnerBass Большое спасибо за подробную информацию. Теперь я понимаю, почему, и, возможно, мне нужно разработать свой собственный инструмент для этого, или, может быть, существуют какие-то изящные библиотеки.

user10180218 11.08.2018 02:05
0
8
541
0

Другие вопросы по теме

Похожие вопросы