webpack-resol-alias для разрешения зависимостей зависимостей - PullRequest
0 голосов
/ 14 января 2019

Я застрял с одной проблемой, и поиск в ней в течение примерно трех часов ни к чему не привел.

Вот проблема. Я пытаюсь разработать свой собственный просмотрщик PDF на основе PDF.JS lib. Официально он распространяется по npm в виде пакета pdfjs-dist. Однако мне нужно расширить несколько классов, которые недоступны в pdfjs-dist. Итак, я npm install 'ed или yarn add' ed первоначального репо https://github.com/mozilla/pdf.js.git. Таким образом, у меня есть доступ к нужным классам. Внутри pdf.js есть базовая библиотека, которая хранится в pdf.js/src/, и приложение pdf-viewer, которое хранится в pdf.js/web/.

Внутри этого pdf.js/web/ ядра приложения app (pdf.js) имеется ссылка с псевдонимом pdfjs-lib, который разрешается в pdf.js/src/ во время внутреннего процесса сборки pdf.js с помощью gulp.

Например pdf.js/web/base_viewer.js:

import { AnnotationLayerBuilder } from './annotation_layer_builder';
import { createPromiseCapability } from 'pdfjs-lib';
import { PDFPageView } from './pdf_page_view';

Так что теперь я пытаюсь импортировать это pdf.js/web/base_viewer.js в мое приложение, которое использует последний Webpack 4 (я полагаю), и эта субзависимость pdfjs-lib не разрешена.

Я пробовал механизм разрешения псевдонимов в веб-пакете (https://webpack.js.org/configuration/resolve/):

    resolve: {
      alias: {
        'pdfjs-lib': path.resolve(__dirname, './node_modules/pdf.js/src/')
      },
    }

... но похоже, что он разрешает зависимости только моего собственного приложения, но не подчиненные зависимости моей зависимости.

На всякий случай я создаю приложение Vue 3.0 с использованием vue-cli и получаю доступ к конфигурации веб-пакета следующим образом: https://cli.vuejs.org/guide/webpack.html, но не думаю, что это имеет значение.

Любая помощь от гуру Webpack здесь?

Спасибо.

...