Я хотел превратить простую функцию в модуль, который мог бы потребоваться в другом проекте. Я хотел читать в txt файлах, используя promisify (bluebird) в fs.readFile. Использование Promise.promisify работает, но результатом является только содержимое файла. Мне нужно было содержимое И имени файла. Поэтому я решил попробовать и обещать вызов сам, а затем обернуть эту функциональность в отдельный модуль, который я мог бы извлечь из github.

Создание модуля

Обычно вам понадобятся 2 файла… файл для функциональности и файл package.json. Немного сложной частью был package.json. Я забыл добавить основной раздел, поэтому, когда я попытался импортировать его в свой проект, возникла ошибка неопределенной функции. Вот очень урезанная версия моего файла package.json:

{
  "name": "fs_readfile",
  "main": "lib/read_file.js",
  "dependencies": {
    "bluebird": "~3.4.6"
  }
}

Это созданный мной модуль: fs_readfile. Он использует bluebird для возврата обещания для fs.readFile, а в обещании возвращает имя файла, путь к файлу и содержимое файла. Я уверен, что есть модуль, который это делает, но я хотел попробовать написать это сам.

Импорт модуля из github

Теперь, когда у меня есть этот модуль на github, я хочу использовать его в своем проекте, поэтому я добавил этот модуль как зависимость.

"fs_readfile": "git://github.com/lynzt/fs_readfile.git"

Не забудьте npm install

Затем потребуйте модуль и используйте его, как любой другой модуль:

const readFile = require("fs_readfile");
readFile.readFileAdditionalInfo(path, name, "utf8").then(file => {
    console.dir(file);
}

Эта статья похожа на ту, что я написал об установке модулей python из github