Выходное имя файла с помощью ts-загрузчика не переименовывайте файлы объявлений

#javascript #node.js #typescript #webpack #ts-loader

Вопрос:

У меня есть экспорт только для сервера, который я называю index.server.ts . Я хочу, чтобы этот файл был переименован server.js так, чтобы import foobar from "my-package/server он указывал на этот файл.

Если я установлю выходное имя файла в Webpack, как это:

 {
   outuput: {
      filename: "server.js"
   }
}
 

Имя файла будет server.js , но объявление типа останется index.server.d.ts , поэтому импорт из других пакетов TypeScript завершается ошибкой, поскольку TypeScript не может найти нужный файл объявления.

Есть идеи, каково ожидаемое поведение/как обойти это?

Комментарии:

1. Есть возможность установить types в файле package.json с вашим файлом ввода вот так: {"types": "./index.server.d.ts"}

2. Да, я наконец-то понял это, также следует отметить, что следующая версия TypeScript (4.5) должна иметь правильную поддержку package.json «экспорт», что является лучшим способом достижения того, чего я хочу также поддерживает несколько точек входа.