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

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


person Jeremy Foster    schedule 16.08.2016    source источник


Ответы (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 };
person duncanhall    schedule 16.08.2016
comment
Спасибо, @duncanhall. Я попробую. Звучит как правильный способ сделать это. - person Jeremy Foster; 17.08.2016