Как загрузить модуль из отдельного каталога `include`? - PullRequest
0 голосов
/ 13 марта 2019

Мой проект tsconfig.json содержит это ...

"include": [
    "src/**/*",
    "generated**/*"
]

Есть два файла src/main.ts и generated/data.json

Я бы хотел import data from 'data.json'; в течение src/main.ts. Я могу заставить его работать, только если generated/data.json перемещено в src.

Я использую webpack и ts-loader для вывода пакета.

Я пробовал использовать rootDirs и сопоставление путей в tsconfig, чтобы src/main.ts смог import data from data.json; `, но безрезультатно.

1 Ответ

0 голосов
/ 14 марта 2019

Если ваши операторы import не содержат относительных спецификаторов (т. Е. Это просто что-то вроде import data from "messages.json"), вы ТОЛЬКО посмотрите на node_modules, если ваш "moduleResolution" равен "Node" (что является наиболее распространенным).

Я думаю, что хорошим решением для вас может быть использование функции компоновки пути компилятора (описано здесь: https://www.typescriptlang.org/docs/handbook/module-resolution.html).. Затем вы можете импортировать данные, используя import data from 'generated/messages.json', если вы установили путьотображение для generated, чтобы указать, где вы хотите. Таким образом, вы можете избежать использования относительных спецификаторов, если это то, что вы хотите избежать.

Если это не дает вам то, что вы хотите, я бы порекомендовалпарсинг здесь https://www.typescriptlang.org/docs/handbook/module-resolution.html, поскольку это даст вам практически все ваши варианты (если вы не хотите использовать более сложную систему сборки, такую ​​как webpack).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...