Как упаковать ресурсы с помощью модуля узла
Я пытаюсь включить некоторые данные моделирования с модулем узла (модуль 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 };