Полный цикл в digital

Файл package.json

Файл package.json представляет собой центральный репозиторий настроек для инструментальных средств, используемых в проекте. Кроме того, он является тем местом, куда npm записывает сведения об именах и версиях установленных пакетов. Любая директория, в которой есть этот файл, интерпретируется как Node.js-пакет. Способ использования файла package.json зависит от того, собираетесь ли вы скачивать пакет или публиковать его в репозитории npmjs.com.

Файл может содержать следующие метаданные:

Скачивание пакетов

Для скачивания пакетов используется package.json файл. Создайте в директории вашего проекта файл и добавьте в него следующий код:

package.json{
  "devDependencies": {
    "jquery": "^3.6.1"
  }
}

Затем сохраните файл и выполните в терминале команду которая запустит файл package.json:

npm install

Версии пакетов для файла package.json

Учитывая, что при использовании semver все версии имеют 3 цифры:

  1. Первая основной выпуск
  2. Вторая вспомогательная версия
  3. Третья выпуск исправлений

Предусмотрины следующие правила:

  • ~ если вы пишете ~0.13.0, значит хотите обновлять только выпуски исправлений. 0.13.1 это пройдет, 0.14.0 это не пройдет
  • ^ если вы пишете ^0.13.0, вы хотите обновить патч и релизы: 0.13.1, 0.14.0 это пройдет
  • * принимаете все обновления, включая обновления основных версий
  • > принимаете любую версию выше указанной
  • >= принимаете любую версию, равную или выше той, которую вы указали
  • <= принимаете любую версию, равную или ниже той, которую вы указали
  • без символа принимаете только указанную версию
  • latest вы хотите использовать последнюю доступную версию

Публикация пакета

Чтобы опубликовать пакет, потребуется собрать все исходные коды и файл package.json в одной директории. В package.json должны быть указаны название, версия и зависимости пакета:

package.json{
  "name": "canvas-project",
  "version": "0.1.0",
  "devDependencies": {
    "canvas-chart": "~1.3.0"
  }
}

Посмотрев на этот код, мы можем сказать, что пакет canvas-project зависит от пакета canvas-chart. Опубликовать пакет можно с помощью комадны:

npm publish

Метаданные

  • name
  • author
  • contributors
  • bugs
  • homepage
  • version
  • license
  • keywords
  • description
  • repository
  • main
  • private
  • scripts
  • dependencies
  • devDependencies
  • engines
  • browserslist

name

Задает имя пакета:

"name": "test-project"

Имя должно содержать менее 214 символов, не должно содержать пробелов, оно может содержать только строчные буквы, дефисы, символы подчеркивания. Это связано с тем, что когда пакет публикуется на npm, он получает собственный URL-адрес на основе этого свойства. Если вы публично опубликовали этот пакет на GitHub, хорошим значением для этого свойства является имя репозитория GitHub.

author

Выводит имя автора пакета:

{
  "author": "Flavio Copes  (https://flaviocopes.com)"
}

Также можно использовать с этим форматом:

{
  "author": {
    "name": "Flavio Copes",
    "email": "your@email.com",
    "url": "https://flaviocopes.com"
  }
}

contributors

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

{
  "contributors": [
    "Flavio Copes <your@email.com> (https://flaviocopes.com)"
  ]
}

Также можно использовать с этим форматом:

{
  "contributors": [
    {
      "name": "Flavio Copes",
      "email": "your@email.com",
      "url": "https://flaviocopes.com"
    }
  ]
}

bugs

Ссылки на систему отслеживания проблем с пакетами, скорее всего, на страницу проблем GitHub:

{
  "bugs": "https://github.com/flaviocopes/package/issues"
}

homepage

Устанавливает домашнюю страницу пакета:

{
  "homepage": "https://flaviocopes.com/package"
}

version

Указывает текущую версию пакета:

"version": "1.0.0"

Это свойство соответствует нотации семантической версии (semver) для версий, что означает, что версия всегда выражается тремя числами: x.x.x.

Первое число — основная версия, второе — дополнительная версия, а третье — версия исправления.

license

Указывает лицензию пакета:

"license": "MIT"

keywords

Это свойство содержит массив ключевых слов, которые связаны с тем, что делает ваш пакет:

"keywords": [
  "email",
  "machine learning",
  "ai"
]

Это помогает людям найти ваш пакет при навигации по похожим пакетам или при просмотре веб-сайта https://www.npmjs.com/.

description

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

"description": "A package to work with strings"

repository

Это свойство указывает, где находится этот репозиторий пакетов:

"repository": "github:flaviocopes/testing",

Обратите внимание на github префикс:

"repository": "gitlab:flaviocopes/testing",
"repository": "bitbucket:flaviocopes/testing",

Вы можете явно установить систему контроля версий:

"repository": {
  "type": "git",
  "url": "https://github.com/flaviocopes/testing.git"
}

Вы можете использовать разные системы контроля версий:

"repository": {
  "type": "svn",
  "url": "..."
}

main

Устанавливает точку входа для пакета. Когда вы импортируете этот пакет в приложение, именно там приложение будет искать экспортируемые модули:

"main": "src/main.js"

private

Если установлено, в true это позволит предотвратить случайную публикацию приложения/пакета на npm:

"private": true

scripts

Определяет набор сценариев узлов, которые вы можете запускать. Эти сценарии являются приложениями командной строки. Вы можете запустить их, вызвав npm run XXXX или yarn XXXX, где XXXX имя команды, пример:

npm run dev

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

"scripts": {
  "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
  "start": "npm run dev",
  "unit": "jest --config test/unit/jest.conf.js --coverage",
  "test": "npm run unit",
  "lint": "eslint --ext .js,.vue src test/unit",
  "build": "node build/build.js"
}

dependencies

Устанавливает список npm пакетов, установленных как зависимости, когда вы устанавливаете пакет с помощью npm или yarn, раздел предназначен для установки только на продакшен (боевой) версии:

npm install имя_команды
yarn add имя_команды
"dependencies": {
  "vue": "^2.5.2"
}

devDependencies

Устанавливает список npm пакетов, установленных как зависимости, когда вы устанавливаете пакет с помощью npm или yarn, раздел предназначен для установки только на тестовой (не боевой) версии:

npm install имя_команды
yarn add имя_команды
"devDependencies": {
  "autoprefixer": "^7.1.2",
  "babel-core": "^6.22.1"
}

engines

Устанавливает, с какими версиями Node.js и другими командами работает этот пакет/приложение:

"engines": {
  "node": ">= 6.0.0",
  "npm": ">= 3.0.0",
  "yarn": "^0.13.0"
}

browserslist

Используется чтобы указать какие браузеры и их версии, вы хотите поддерживать. На него ссылаются Babel, Autoprefixer и другие инструменты, чтобы добавлять только полифиллы и резервные копии, необходимые для целевых браузеров:

"browserslist": [
  "> 1%",
  "last 2 versions",
  "not ie <= 8"
]

Эта конфигурация означает, что вы хотите поддерживать последние 2 основные версии всех браузеров с использованием не менее 1% из статистики CanIUse.com, кроме IE8 и ниже.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг