В этой статье мы увидим, как создать свой собственный пакет npm с помощью javascript и опубликовать его в Интернете.

Что такое НПМ?

NPM — или «Диспетчер пакетов узла» — это менеджер пакетов по умолчанию для среды выполнения JavaScript Node.js.

НПМ состоит из двух основных частей:

  • инструмент CLI (интерфейс командной строки) для публикации и загрузки пакетов.
  • онлайн-репозиторий, в котором размещаются пакеты JavaScript.

Что такое package.json?

Файл package.json вашего проекта является центральным местом для настройки и описания того, как взаимодействовать с вашим приложением и запускать его. Он используется интерфейсом командной строки npm для идентификации вашего проекта и понимания того, как обрабатывать зависимости проекта. Именно файл package.json позволяет npm запускать ваш проект, запускать сценарии, устанавливать зависимости, публиковать в реестре NPM и выполнять множество других полезных задач.

Создание нашего локального пакета npm

Пакет npm, который мы собираемся создать, будет просто базовым, состоящим из некоторых основных математических функций.

Для начала создадим файл package.json.

mkdir maths
cd maths/
mkdir package
mkdir testing
cd package/
npm init

Давайте посмотрим, как выглядит наш package.json.

{
  "name": "basicmath101",
  "version": "1.0.0",
  "description": "Basic mathematics utility functions.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/AnirbanPal4341/mathematics.git"
  },
  "keywords": [
    "mathematics"
  ],
  "author": "Anirban Pal",
  "license": "ISC"
}

Далее давайте определим наш index.js, где мы определим нашу бизнес-логику.

class Maths {
  // summation of an array of numbers.
  sumArray(numArray = []) {
    return numArray.reduce((a, b) => a + b, 0);
  }
  // summation of numbers.
  sum(...args) {
    let sum = 0;
    for (let arg of args) sum += arg;
    return sum;
  }
  // subtraction of numbers.
  subtract(...args) {
    let diff = args[0] * 2;
    for (let arg of args) diff -= arg;
    return diff;
  }
  // multiplication of numbers.
  multiply(...args) {
    let product = 1;
    for (let arg of args) product *= arg;
    return product;
  }
  // division of numbers.
  division(n1, n2 = 1) {
    return n1 / n2;
  }
  // factorial of a number.
  factorial(number) {
    if (number < 0) {
      return undefined;
    } else if (number === 0) {
      return 1;
    } else {
      let fact = 1;
      for (let i = 1; i <= number; i++) {
        fact *= i;
      }
      return fact;
    }
  }
  // if a number is a palindrome.
  isPalindrome(num) {
    var rem,
      temp,
      final = 0;
    var number = Number(num);

    temp = number;
    while (number > 0) {
      rem = number % 10;
      number = parseInt(number / 10);
      final = final * 10 + rem;
    }
    if (final == temp) {
      return true;
    } else {
      return false;
    }
  }
  // if a number is a prime number.
  isPrime(number) {
    let isPrime = true;
    if (number === 1) {
      return undefined;
    } else if (number > 1) {
      for (let i = 2; i < number; i++) {
        if (number % i == 0) {
          isPrime = false;
          break;
        }
      }
      if (isPrime) {
        return true;
      } else {
        return false;
      }
    }
  }
  // calculate nCr.
  combinations(n, r) {
    if (n == r || r == 0) {
      return 1;
    } else {
      r = r < n - r ? n - r : r;
      return product_Range(r + 1, n) / product_Range(1, n - r);
    }
  }
}
function product_Range(a, b) {
  var prd = a,
    i = a;

  while (i++ < b) {
    prd *= i;
  }
  return prd;
}
// export class
module.exports = new Maths();

Создайте базовый файл README.md.

# basicmath101

A npm package for basic mathematics operations.

# installation

$ npm install basicmath101 --save

# js usage

import package :
const maths = require("mathematics");

use basic mathematics functions defined in the package :
console.log(maths.sum(1,2,3);

result :
6

Добавьте файл .npmrc.

@my-org:registry=https://npm.pkg.github.com/

После этого сделайте следующее, чтобы опубликовать в Интернете.

npm install
sudo npm link
npm login
npm publish

Давайте посмотрим, как наш опубликованный пакет npm станет общедоступным.

Ссылка на GitHub — https://github.com/AnirbanPal4341/mathematics.git

Ваше здоровье!