Как создать модуль Node.js

    Команда Simple-Server
    03.06.2026
    8 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

    Перед созданием модуля Node.js, установите саму платформу вместе с NPM. Node Package Manager — это менеджер пакетов. Он позволяет управлять зависимостями и устанавливать пакеты, необходимые для разработчиков. Также он содержит большое количество уже готовых пакетов и предоставляет удобный способ их установки, обновления и удаления. Кроме того, NPM позволяет создавать и публиковать свои собственные пакеты для использования другими разработчиками.

    Установка Node.js с Node Package Manager не представляет особых трудностей. Рассмотрим ее отдельно для Linux и MacOS и для Windows.

    • Для установки Node.js и NPM на Linux и MacOS:

    Откройте терминал и выполните следующую инструкцию под root или пользователем с правами sudo:

    apt-get update apt-get install nodejs

    Теперь установите NPM, выполнив инструкцию:

    Проверьте версии платформы и менеджера, выполнив инструкции:

    • Для установки Node.js и NPM на Windows:

    Скачайте установочный файл Node.js с официального сайта и запустите его. Установите платформу вместе с пакетным менеджером, следуя инструкциям установщика. После установки проверьте версии Node.js и NPM. Для этого, открыв командную строку (нажмите Win+R и введите cmd), выполните инструкции:

    Если версии программ успешно отображаются в терминале, значит установка прошла успешно, и можно начать использовать их для разработки вашего первого модуля.

    Открываем терминал, создаем каталог и переходим туда:

    Теперь инициализируем Node Package Manager, чтобы дать возможность импорта:

    Флаг -y задействуется для пропуска ненужных диалогов при конфигурировании package.json (этот файл нам еще понадобится). В ответ будет создан package.json с информацией об имени, основном файле, скриптах и отсутствии ошибок в них, а также рядом других параметров (описание, версия, ключевые слова, автор, лицензия и т.д.):

    Теперь открываем nano или другой удобный для вас редактор и создаем новый файл. Этот файл необходим для того, чтобы создать точку входа. Вот так это делается на примере nano:

    Таким образом мы создадим файл по пути: ~/colors/index.js.

    Теперь определяем класс, экземпляр которого будет иметь имя, а также код. Прописываем:

    class Color { constructor(name, code) { this.name = name; this.code = code; } }

    Далее записываем в файл цвета. Давайте сделаем это на примере нескольких оттенков красного:

    const allColors = [ new Color('IndianRed', '#CD5C5C'), new Color('LightCoral', '#F08080'), new Color('Salmon', '#FA8072'), new Color('Crimson', '#DC143C'), new Color('FireBrick', '#B22222'), new Color('DarkRed', '#8B0000'), ];

    И создаем функцию, предназначенную для рандомного выбора:

    exports.getRandomColor = () => { return allColors[Math.floor(Math.random() * allColors.length)]; } exports.allColors = allColors;

    Всё, что хранится в ключе exports, будет открыто при импорте. Теперь сохраняем и закрываем файл (в nano для этого необходимо нажать Ctrl+X, а после Y для сохранения изменений) и приступаем к следующему необходимому шагу.

    Для этого нам потребуются некоторые навыки работы с одним из инструментов: REPL. REPL — это интерактивная среда, которая позволяет пользователю вводить команды на определенном языке программирования, которые затем немедленно выполняются и выводятся на экран. Таким образом, REPL позволяет тестировать и отлаживать код пошагово, не создавая целых программ или скриптов. Пользователь может вводить команды по одной и сразу же видеть результат их исполнения, что делает процесс разработки более быстрым и эффективным. REPL используется для разработки программ не только на JavaScript, но также поддерживает и многие другие языки, в том числе Python, Ruby, Lisp и т.д.

    Итак, сначала запускаем REPL простой инструкцией:

    Теперь вводим в интерфейсе REPL следующее (здесь мы также используем «родной» язык платформы, JS):

    colors = require('./index');

    И нажимаем Enter, выводя список наших цветов с их шестнадцатеричными кодами. Вот что вы увидите:

    Теперь приступаем собственно к тестированию, вводя:

    colors.getRandomColor();

    Программа должна вывести нам случайный цвет. Чтобы удостовериться в этом, попробуйте ввести эту инструкцию еще несколько раз. На этом тестирование можно считать успешно завершенным, но нужно не забыть выйти из REPL следующей инструкцией:

    Сохраняем локальный модуль в качестве зависимости

    Это понадобится нам, чтобы обеспечить работу модулей независимо от условий (например, при изменении директории проекта). Чтобы сделать это, создаем новый модуль. Располагаем его в какой-либо другой директории за пределами нашего проекта и переходим туда:

    mkdir other_nodejs_project cd other_nodejs_project

    Далее инициализируем новый модуль при помощи Node Package Manager:

    NPM сгенерирует нам новый package.json. Далее инсталлируем туда наш модуль colors c записью, вот так:

    npm install --save ../colors

    Мы должны увидеть, что добавились строчки зависимостей:

    Закрываем файл и проверяем расположение нашего основного модуля, вот так:

    В выводе должно появиться имя нашего модуля. Далее вводим:

    И проверяем корректность работы:

    const colors = require('colors'); const chosenColor = colors.getRandomColor(); console.log(`Предлагаем использовать цвет ${chosenColor.name} на своем сайте. Его код HTML ${chosenColor.code}`);

    Эта инструкция в новом index.js __ позволит вам импортировать рабочий модуль с цветами, а затем выбрать случайный оттенок и получить информацию о том, что с ним делать.

    Теперь сохраняем изменения, закрываем файл и запускаем скрипт:

    В ответ мы получим случайный цвет с рекомендацией и шестнадцатеричным кодом:

    Предлагаем использовать цвет FireBrick на своем сайте. Его код #B22222

    Чтобы убедиться в том, что программа выдает рандомные цвета, запустите ее еще несколько раз. Теперь можно добавить любое количество новых цветов, только не забывайте после этого обновлять модуль инструкцией:

    А мы переходим к завершающему этапу.

    Выполняем привязку локального модуля

    Это понадобится нам для того, чтобы пакеты, содержащие наш модуль, обновлялись сами при вносимых изменениях в самом модуле. В процессе разработки программист постоянно вносит изменения в код, и обновлять все используемые этот пакет зависимости вручную, конечно же, крайне неудобно. Поэтому в первую очередь выполняем удаление локального модуля инструкцией:

    Теперь добавляем глобальную ссылку следующим образом:

    cd ../colors sudo npm link

    Далее возвращаемся в директорию other_nodejs_project:

    cd ../other_nodejs_project sudo npm link colors

    Вот и всё, мы привязали локальный модуль, теперь проверяем, как он работает, уже привычным способом:

    В результате мы получим рандомное значение с комментарием, как в примере выше:

    Предлагаем использовать цвет FireBrick на своем сайте. Его код #B22222

    Осталось совсем немного, проверить применение обновлений:

    cd ../colors nano index.js

    И добавляем вниз (вместо зеленого можно выбрать и любой другой цвет):

    exports.getGreen = () => { return allColors[2]; }

    Сохраняем и закрываем файл и опять открываем его, но в другой директории:

    cd ../other_nodejs_project nano index.js const favoriteColor = colors.getGreen(); console.log(`Кстати, мой любимый цвет ${favoriteColor.name}/${favoriteColor.code}`);

    Еще раз сохраняем и закрываем файл и запускаем его для проверки:

    Вывод должен быть примерно таким:

    Предлагаем использовать цвет FireBrick на своем сайте. Его код #B22222 Кстати, мой любимый цвет green/#008000

    Как видим, нам не пришлось обновлять модуль через NPM. Добавим, что такой способ обновления подойдет, когда разработчики активно работают с кодом, постоянно изменяя его. В противном случае достаточно использования инструкции npm install __ по установке модуля.


    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны