Webpack не может импортировать пакет, установленный из git

1

Поэтому я разветкил пакет в git. Сделал мои изменения. Тогда в моем терминале

npm install --save git+https://github.com/hayk94/ddp.js.git

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

import DDP from 'ddp.js'

Но webpack дает мне эту ошибку

ERROR in ./main.js
Module not found: Error: Can't resolve 'ddp.js' in '/Users/hayksafaryan/projects/b2cEmbedLib'
 @ ./main.js 23:11-28
 @ multi (webpack)-dev-server/client?http://localhost:8080 babel-polyfill ./main.js
webpack: Failed to compile.

Однако webpack работает отлично, если я устанавливаю пакет с npm. Я импортирую пакет как в документы, но, возможно, есть какой-то другой способ для установленных пакетов git?

Теги:
webpack
npm

1 ответ

3
Лучший ответ

Точкой входа пакета является lib/ddp.js, но этот файл не существует в репозитории. Очень часто библиотеки собирают свои библиотеки до публикации в npm, так что они могут использовать новые функции JavaScript, но при этом поддерживают более старые версии, которые их не поддерживают. Это делается с помощью prepublish крючка, который автоматически запускается до публикации пакета (при запуске npm publish). При этом встроенные файлы не попадают в репозиторий, так как это в основном забивает ваши коммиты. Некоторые люди решают проверить их, чтобы они могли использовать его прямо оттуда, что стало довольно редким, потому что эти прецеденты обычно покрываются такими услугами, как Unpkg.

У вас есть несколько возможностей использовать его из репозитория git.

  • Проверьте встроенные файлы.
  • Создайте файлы после установки. Либо вручную, либо с помощью postinstall крючка. (не рекомендуется)
  • Измените точку входа на src/ddp.js Если вам нужно перекрыть файлы, это не допустимый вариант, даже если вы теоретически можете добавить белый список в свою конфигурацию webpack, поэтому он будет передан (предполагается, что вы node_modules из node_modules перетаскивание).
  • Опубликуйте пакет до npm под вашим пространством имен (@yourusername/ddp.js) и используйте его. Подробнее см. Работа с пакетами с областью.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню