При написании пакета NPM, как мне указать, что путь к файлу PNG ссылается на скрипт node_module, а не на то, откуда он импортирован? - PullRequest
0 голосов
/ 10 февраля 2020

Я пишу npm пакет, который требует импорта файлов PNG из пакета:

Структура каталогов

__test__
      __test__/test.js
src
      src/resources
             src/resources/PNG Image File
      src/index.js

Я использую require(../src/index.js) из test.js.

Всякий раз, когда я пытаюсь достичь ./resources/image.png из index.js, путь предпринимается изнутри __test__ (поскольку он технически импортируется прогоном test.js.

I невозможно использовать путь ../src/resources, поскольку цель состоит в том, чтобы создать его как NPM пакет, который можно импортировать из любого места.

Какой лучший способ указать в index.js, что независимо от того, где он находится запустить, он должен искать в своем собственном каталоге для этих файлов изображений.

1 Ответ

1 голос
/ 10 февраля 2020

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

Таким образом, из index.js вы можете обратиться к расположению файла PNG Вот так:

let pngFileDirectory = path.join(__dirname, "..", resources);

И, если вы знаете имя искомого файла:

let pngFile = path.join(__dirname, "..", resources, "myFile.png");

Сделав это, вы динамически создаете путь относительно вашего собственного файла модуля. Поскольку файл образа является частью той же установки NPM, файл PNG находится в фиксированном относительном расположении относительно вашего собственного файла модуля, и это не зависит от того, как был загружен ваш модуль или каков текущий рабочий каталог в проекте. Использование __dirname является ключом.

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