Рубрики
Без рубрики

Создание класса Utility в качестве модуля (NPM)

Это мини-учебник для создания собственного NPM.

Автор оригинала: Edax Filander Ucles Hernandez.

Во-первых, мы должны иметь представление о том, что они являются пакетами NPM. Конечно, если кто-то строит приложение в Node.js, я представляю, что они знают, но они могут посетить следующую ссылку, чтобы узнать, как начать с Node.js.

01 – Что такое НПМ? |. NPM Документация Место, где все вещи NPM документируются Отказ

Вот учебник о том, как сделать спокойный API:

Построить спокойную API с помощью узла и экспресс 4 С выпуском Express 4.0 просто … Scotch.io Отказ

11 – создание модулей Node.js | NPM Документация Место, где все вещи NPM документированы

Обычно, когда мы хотим использовать какую-то утилиту в нашем приложении узла, мы используем функции, определенные в файле, а затем экспортируйте их как класс утилиты, чтобы использовать его, где нам это нужно.

Это становится немного сложной и не является хорошей практикой, если вам нужно использовать этот класс в нескольких проектах.

В нашем модуле у нас есть два важных файла: index.js и package.json. С помощью команды NPM init, мы создали наш Package.json, как показано ниже:

mkdir xtreme-math && cd xtreme-math
    npm init 

    {
      "name": "xtreme-math",
      "version": "1.0.0",
      "description": "Mi primer paquete",
      "main": "index.js",
      "scripts": {
        "test": "npm test"
      },
      "repository": {
        "type": "git",
        "url": "git+[https://github.com/f1lander/xtreme-math.git](https://github.com/f1lander/xtreme-math.git)"
      },
      "keywords": [
        "npm",
        "module",
        "package"
      ],
      "author": "f1lander",
      "license": "MIT",
      "bugs": {
        "url": "[https://github.com/f1lander/xtreme-math/issues](https://github.com/f1lander/xtreme-math/issues)"
      },
      "homepage": "[https://github.com/f1lander/xtreme-math#readme](https://github.com/f1lander/xtreme-math#readme)"
    }

    Is this ok? (yes)

Файл Package.json определяет файл, к которому наши модульные точки:

    "main": "index.js"

Мы экспортируем все классы, которые мы хотим использовать.

Мы также создадим файл .js, который будет содержать наш класс:

touch math.js 

Теперь в файле, который мы только что создали, мы сделаем наш класс, который будет содержать функции:

    "use strict"; 

    class Math {

       constructor(number) {

           this.number = number;

       }

       /* This function will return the square of the number that the constructor of this class receives.*/

       square(){
       
          return this.number * this.number;

       }

    }

    module.exports = Math;
    

Как только мы создам наш класс, который содержит квадратную функцию, мы должны экспортировать класс в качестве модуля, а затем в файл index.js, который мы определяем в качестве пакета Main.

    const math = require("./math");

    module.exports = math;

Легко, верно?

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

Github:

    npm install --save [https://github.com/f1lander/xtreme-math](https://github.com/f1lander/xtreme-math/tarball/master).git

    /* note: if they want to install from a specific branch for example "master" */

    npm install --save [https://github.com/f1lander/xtreme-math](https://github.com/f1lander/xtreme-math/tarball/master)/tarball/master

To install the local file package, you must edit the package.json and add the file path to the dependencies.

    "dependencies": {
        "xtreme-math": "file:/Users/Doom/Desktop/xtreme-math"
      }

You will notice that in your package.json file, we added the package we just installed.

    // github

    "dependencies": {
        "xtreme-math": "git+[https://github.com/f1lander/xtreme-math.git](https://github.com/f1lander/xtreme-math.git)"
      }

    // archivo local previamente editado.

    "dependencies": {
        "xtreme-math": "file:/Users/Doom/Desktop/xtreme-math"
      }
      

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

В чем разница между зависимостями, DevDependonds и PeerDependonds в пакете NPM … Резюме важных различий в поведении: связанные варианты не обсуждаются здесь: для запуска требуются зависимости … stackoverflow.com Отказ

Однажды сделано, мы можем использовать наш пакет Xtreme-Math в нескольких проектах.

Пример будет:

    "use strict";

    const xtreme_math = require("xtreme-math");

    const number = 2;

    const math = new xtreme_math(number);

    console.log(`The square of ${number} is: ${math.square()}`);

    //The square of 2 is: 4
    

Я надеюсь, что этот небольшой учебник был полезен для вас.

Edax uclés.