Я разрабатываю библиотеку npm, используя Typescript в качестве языка программирования. Для удобства разработки я использовал опцию paths
в tsconfig.json и module-alias
, чтобы иметь возможность писать импорты, такие как import * from '@/utils'
. Проблема в том, что эти пути остаются прежними и в перенесенных файлах js. Это должно быть хорошо, потому что module-alias
должен работать с этими путями. Проблема в том, что это работает только тогда, когда я использую его локально, но когда я устанавливаю библиотеку с помощью npm и пытаюсь ее запустить, она перестает работать. Как я могу это решить?
Примечание. Я обнаружил проблему, если я помещаю конфигурацию __moduleAliases
в package.json проекта, используя мою библиотеку, и использую путь к дистрибутиву моей библиотеки, он работает. Тем не менее я не знаю, как решить эту проблему.
Я думаю, что нашел решение, но оно все еще не идеально.
В module-alias
я могу передать в качестве аргумента путь к package.json с настройками, поэтому я просто использую moduleAlias(path.join(__dirname, '..', 'package.json'));
чтобы указать "абсолютным" образом package.json моей библиотеки и даже если он установлен другим пользователем в другой Псевдоним модуля проекта будет использовать package.json моей библиотеки.
Есть еще две проблемы:
Оказалось очень ostic решить. В конце концов я использовал веб-пакет, чтобы изменить все пути с псевдонимами @ на обычные пути, чтобы эта проблема не сохранялась, и удалил псевдоним модуля. Я использовал этот плагин веб-пакета https://www.npmjs.com/package/tsconfig-paths-webpack-plugin , а этот другой плагин можно было использовать без веб-пакета https://www.npmjs.com/package /tsconfig-пути
Чтобы увидеть библиотеку, скомпилированную с помощью веб-пакета и использующую этот плагин, вы можете посмотреть https://github.com/euberdeveloper/euberlog