Ссылочный путь к шрифту для Webpack и простого фреймворка

Как настроить Webpack таким образом, чтобы относительные пути в библиотеке SCSS были правильно разрешены при импорте файлов библиотеки в приложение, скомпилированное через Webpack?

У меня есть библиотека SCSS, которая частично структурирована, как показано ниже:

В flt-typography.scss являются @font-face декларации, такие как следующее:

@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: local('Material Icons'),
      local('MaterialIcons-Regular'),
      url('../fonts/MaterialDesignIcons/MaterialIcons-Regular.woff2') format('woff2'),
      url('../fonts/MaterialDesignIcons/MaterialIcons-Regular.woff') format('woff');
}

Когда все скомпилировано, структура такова, что пользователь может импортировать .css файл и шрифты загружаются соответствующим образом.

Но я также хочу иметь возможность импортировать корень библиотеки SCSS в проект Vue (который доступен в локальном /company npm-репозитории):

<style lang="scss">
@import '~@fleet/ui/src/fleet-ui';
</style>

Из-за путей ошибки Webpack (vie vue-cli) утверждают, что он не может найти файлы шрифтов.

Если я закомментирую все свои шрифты в библиотеке и загрузлю их прямо в приложение, например:

@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: local('Material Icons'),
      local('MaterialIcons-Regular'),
      url('~@fleet/ui/dist/fonts/MaterialDesignIcons/MaterialIcons-Regular.woff2') format('woff2'),
      url('~@fleet/ui/dist/fonts/MaterialDesignIcons/MaterialIcons-Regular.woff') format('woff');
}

... это работает отлично. Но сейчас библиотека сломана.

Как я могу структурировать библиотеку и / или app/Webpack так, чтобы ссылка на шрифт могла быть разрешена обоими?

0 ответов

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