Как упаковать ресурсы с помощью модуля узла

Я пытаюсь включить некоторые данные моделирования с модулем узла (модуль B) и затем иметь возможность ссылаться на эти данные из вызывающего модуля (модуль A). Данные представляют собой текстовый файл в /data каталог модуля B. У меня есть функция в модуле B, которая вызывает данные, используя __dirname, но, конечно, когда эта функция вызывается из модуля A, __dirname ссылается на каталог модуля A... не модуля B. Что лучше способ включить данные об активах, как это и сделать их доступными в модуле потребления?

1 ответ

Решение

При упаковке модуля вы можете использовать files свойство package.json для объединения любых ресурсов вместе с вашим модулем.

Затем в этом модуле вы можете использовать относительный путь для ссылки на ваш включенный актив.

Представьте себе модуль с такой файловой структурой:

 -assets
   |-data.txt
 index.js

В вашем package.json вы можете иметь files раздел, который выглядел как:

files: [
    'index.js',
    'assets/data.txt'
]

А в index.js вы можете выставить данные об активах следующим образом:

let fs = import 'fs';

function getAssetData() {
   return fs.readFileSync('./assets/data.txt')
}

module.exports = { getAssetData };
Другие вопросы по тегам