#typescript #frontend #es6-modules
#typescript #интерфейс #es6-модули
Вопрос:
Я пытаюсь перейти на модули es6 для интерфейса. На работе я работаю на веб-сайте, основанном на PHP и Symfony для обратной стороны, со следующей упрощенной структурой:
src
ClientSpecificBundle
Resources
private
typescript
tsconfig.json
main.ts
public
js
main.js
CompanyGenericBundle
Resources
private
typescript
tsconfig.json
foo.ts
public
js
foo.js
web
bundles
client-specific
company-generic
Все, что находится в web
, открыто и непосредственно в HTTP.
web/bundles/client-specific
является символической ссылкой на src/ClientSpecificBundle/Resources/public
.
web/bundles/company-generic
является символической ссылкой на src/CompanyGenericBundle/Resources/public
.
То, что я пытаюсь заставить работать сначала, просто чтобы я мог продолжить со всем остальным
foo.ts
function foo(): void
{
console.log("Hello, World!");
}
export { foo };
main.ts
import { foo } from "/bundles/company-generic/js/foo.js";
foo();
Я предполагаю, что это связано со свойствами файла tsconfig.json baseUrl, path, reference и / или composite.
Я пока не смог понять, как их использовать, чтобы заставить его работать.
Как я могу сообщить TypeScript, что модули должны быть загружены по пути, который не соответствует структуре файловой системы?
src/ClientSpecificBundle/Resources/public/js/ -> /bundles/client-specific/js/
src/CompanyGenericBundle/Resources/public/js/ -> /bundles/company-generic/js/
Кроме того, как я могу сообщить TypeScript в ClientSpecificBundle, что модуль /bundles/company-generic/js/foo.js
существует и определен в src/CompanyGenericBundle/Resources/public/typescript/foo.ts
, чтобы мой файл работал?