Настройка зависимости git npm для отладки - PullRequest
0 голосов
/ 15 ноября 2018

Первый раз пытаюсь это сделать, поэтому не совсем уверен, что я делаю или как это настроить.

Мне нужно отладить библиотеку, которую я использую в своем приложении. Первоначально он был установлен с npm install @react-pdf/renderer. Это не сработает для отладки, и я наткнулся на ответ, описывающий, как работать с зависимостью, если вам нужно внести в нее изменения:

https://stackoverflow.com/a/13302095/3123109

Так что теперь я делаю npm install https://github.com/diegomura/react-pdf/tarball/master, который помещает копию репо в мой node_modules.

У меня сложилось впечатление, что после этого "просто сработает". Конечно, не все так просто ...


Что я пробовал

  1. У меня в приложении работает NPM. Первая ошибка, которая появляется Module not found: Error: Can't resolve '@react-pdf/renderer' в моем компоненте, где она содержится. Итак, обновил мой import до следующего, чтобы посмотреть index.js библиотеки: import { Document } from '@react-pdf/renderer/src.

  2. Очищает это сообщение. Теперь я получаю:

    ERROR in /mnt/c/Users/User/projects/current/client/node_modules/@react-pdf/renderer/src/elements/Page.js 11:22
    Module parse failed: Unexpected token (11:22)
    You may need an appropriate loader to handle this file type.
    |
    | class Page extends Base {
    >   static defaultProps = {
    |     size: 'A4',
    |     orientation: 'portrait',
    @ /mnt/c/Users/User/projects/current/client/node_modules/@react-pdf/renderer/src/elements/index.js 3:0-26 13:8-12
    @ /mnt/c/Users/User/projects/current/client/node_modules/@react-pdf/renderer/src/index.js
    

Глядя на это, кажется, что это babel-preset-stage-0 проблема:

https://stackoverflow.com/a/41412906/3123109

Хорошо, я добавляю это к .babelrc в @react-pdf/renderer, так как оно отсутствует. Та же проблема.

  1. Я думаю, мне нужно добавить его к моему .babelrc, что также требует выполнения npm install --save-dev babel-preset-stage-0 (даже если я не использую это в своем приложении, но что угодно). Получите эту ошибку:

    ERROR in ../react/index.jsx
    Module build failed (from /mnt/c/Users/User/projects/current/client/node_modules/babel-loader/lib/index.js):
    Error: Plugin/Preset files are not allowed to export objects, only functions.
    

Очевидно, это было связано со смешением Бабеля 6 с Бабелем 7, первый из которых связан с stage-0, а второй - с тем, что я использую в своем приложении.

https://stackoverflow.com/a/49183337/3123109

Хорошо, очевидно, возникает проблема зависимости, которую я не знаю, как решить, учитывая, что никогда раньше не делал этого. Тем не менее, когда я сделал npm install https://github.com/diegomura/react-pdf/tarball/master, он установил зависимости в node_module для @react-pdf/renderer.


Вопросы

  1. Нужно ли устанавливать зависимости для @react-pdf/renderer, хотя похоже, что они были установлены с npm install https://github.com/diegomura/react-pdf/tarball/master?

  2. Если так, то где? Нужно ли добавлять зависимости в мое приложение (через добавление их в мой package.json) или в каталог node_modules/@react-pdf/renderer через npm install в этом каталоге?

  3. Нужно ли запускать npm run ... --watch для @react-pdf/renderer в дополнение к запуску его для моего приложения?

  4. Или мне просто нужно взять скомпилированные файлы JS для @react-pdf/renderer, прочитать их в моем приложении, а затем перекомпилировать JS, если мне нужно внести изменения?

1 Ответ

0 голосов
/ 16 ноября 2018

Ну, разработчик @react-pdf/renderer дал мне руку для настройки.Он предположил, что, как я уверен, есть несколько способов сделать это, используя yarn:

  1. Clone response-pdf repo в отдельной папке
  2. Run yarn install в ответном pdf-каталоге
  3. Запустите yarn link в ответном-PDF-каталоге.Это свяжет библиотеку с вашей локальной версией
  4. Запустите yarn watch в ответном pdf-каталоге.Это будет следить за изменениями файлов и перекомпоновывать каждый раз
  5. Запустить yarn link "@react-pdf/renderer" в вашем проекте, чтобы использовать локальный пакет

Я бы заменил изображение "yarn" на "npm "сработало бы, но не проверило это.

Я узнаю что-то новое каждый день ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...