Поиск…


замечания

Вы можете создать package.json с

npm init

который задаст вам основные факты о ваших проектах, включая идентификатор лицензии .

Определение базового проекта

{
    "name": "my-project",
    "version": "0.0.1",
    "description": "This is a project.",
    "author": "Someone <[email protected]>",
    "contributors": [{
        "name": "Someone Else",
        "email": "[email protected]"
    }],
    "keywords": ["improves", "searching"]
}
поле Описание
название необходимое поле для установки пакета. Нужно быть строчным, одно слово без пробелов. (Разрешены штрихи и подчеркивания)
версия обязательное поле для версии пакета с использованием семантического управления версиями .
описание краткое описание проекта
автор указывает автор пакета
авторы массив объектов, по одному для каждого вкладчика
ключевые слова массив строк, это поможет людям найти ваш пакет

зависимости

"dependencies": {"module-name": "0.1.0"}

  • точный : 0.1.0 установит эту конкретную версию модуля.
  • новейшая второстепенная версия : ^0.1.0 установит новейшую второстепенную версию, например 0.2.0 , но не будет устанавливать модуль с более высокой основной версией, например 1.0.0
  • самый новый патч : 0.1.x или ~0.1.0 установит новейшую версию патча, например 0.1.4 , но не будет устанавливать модуль с более крупной или младшей версией, например 0.2.0 или 1.0.0 .
  • wildcard : * будет установлена ​​последняя версия модуля.
  • git : следующее установит tarball из главной ветви git-репо. Также можно предоставить #sha , #tag или #branch :
    • GitHub : user/project или user/project#v1.0.0
    • url : git://gitlab.com/user/project.git или git://gitlab.com/user/project.git#develop
  • локальный путь : file:../lib/project

После добавления их в файл package.json, используйте команду npm install в каталоге проекта в терминале.

devDependencies

"devDependencies": {
    "module-name": "0.1.0"
}

Для зависимостей, необходимых только для разработки, например, для тестирования прокси-серверов ext. Эти dev-зависимости не будут установлены при запуске «npm install» в режиме производства.

Сценарии

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

{
  "scripts": {
    "pretest": "scripts/pretest.js",
    "test": "scripts/test.js",
    "posttest": "scripts/posttest.js"
  }
}

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

$ npm run-script test
$ npm run test
$ npm test
$ npm t

Предварительно определенные сценарии

Имя скрипта Описание
prepublish Запуск до публикации пакета.
публиковать, публиковать Запуск после публикации пакета.
предустанавливать Запустите перед установкой пакета.
установить, postinstall Запустите после установки пакета.
preuninstall, удалить Запустите перед удалением пакета.
postuninstall Запуск после удаления пакета.
предисловие, версия Запустите перед выпуском версию пакета.
postversion Запустите после выпуска версию пакета.
предварительный тест, тест, посттест Запуск командой npm test
престоп, стоп, постстоп Запуск командой npm stop
предварительный, старт, poststart Запуск командой npm start
prerestart, restart, postrestart Запустить команду npm restart

Пользовательские скрипты

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

{
  "scripts": {
    "preci": "scripts/preci.js",
    "ci": "scripts/ci.js",
    "postci": "scripts/postci.js"
  }
}

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

$ npm run-script ci
$ npm run ci

Пользовательские скрипты также поддерживают сценарии pre и post , как показано в примере выше.

Расширенное определение проекта

Некоторые дополнительные атрибуты анализируются веб-сайтом npm, например repository , bugs или homepage и показаны в инфобоксах для этих пакетов

{
  "main": "server.js",  
  "repository" :  {
    "type": "git",
    "url": "git+https://github.com/<accountname>/<repositoryname>.git"
  },
  "bugs": {
    "url": "https://github.com/<accountname>/<repositoryname>/issues"
  },
  "homepage": "https://github.com/<accountname>/<repositoryname>#readme",
  "files": [
    "server.js", // source files
    "README.md", // additional files
    "lib" // folder with all included files
  ]
}
поле Описание
главный Вступительный скрипт для этого пакета. Этот скрипт возвращается, когда пользователь требует пакет.
хранилище Местоположение и тип публичного хранилища
ошибки Bugtracker для этого пакета (например, github)
домашняя страница Домашняя страница для этого пакета или общий проект
файлы Список файлов и папок, которые должны быть загружены, когда пользователь делает npm install <packagename>

Изучение package.json

Файл package.json , обычно присутствующий в корне проекта, содержит метаданные о вашем приложении или модуле, а также список зависимостей для установки из npm при запуске npm install .

Для инициализации package.json введите npm init в командной строке.

Чтобы создать package.json со значениями по умолчанию, используйте:

npm init --yes
# or
npm init -y

Чтобы установить пакет и сохранить его в package.json используйте:

npm install {package name} --save

Вы также можете использовать сокращенную нотацию:

 npm i -S {package name}

--save NPM -S для --save и -D to --save-dev для сохранения в ваших зависимостях производства или разработки соответственно.

Пакет будет отображаться в ваших зависимостях; если вы используете --save-dev вместо --save , пакет появится в ваших devDependencies.

Важные свойства package.json :

{
  "name": "module-name",
  "version": "10.3.1",
  "description": "An example module to illustrate the usage of a package.json",
  "author": "Your Name <[email protected]>",
  "contributors": [{
    "name": "Foo Bar",
    "email": "[email protected]"
  }],
  "bin": {
    "module-name": "./bin/module-name"
  },
  "scripts": {
    "test": "vows --spec --isolate",
    "start": "node index.js",
    "predeploy": "echo About to deploy",
    "postdeploy": "echo Deployed",
    "prepublish": "coffee --bare --compile --output lib/foo src/foo/*.coffee"
  },
  "main": "lib/foo.js",
  "repository": {
    "type": "git",
    "url": "https://github.com/username/repo"
  },
  "bugs": {
    "url": "https://github.com/username/issues"
  },
  "keywords": [
    "example"
  ],
  "dependencies": {
    "express": "4.2.x"
  },
  "devDependencies": {
    "assume": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
  },
  "peerDependencies": {
    "moment": ">2.0.0"
  },
  "preferGlobal": true,
  "private": true,
  "publishConfig": {
    "registry": "https://your-private-hosted-npm.registry.domain.com"
  },
  "subdomain": "foobar",
  "analyze": true,
  "license": "MIT",
  "files": [
    "lib/foo.js"
  ]
}

Информация о некоторых важных свойствах:

name

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

  1. Имя должно быть меньше или равно 214 символам.
  2. Имя не может начинаться с точки или подчеркивания.
  3. Новые пакеты не должны иметь заглавных букв в названии.
version

Версия пакета определяется семантической версией (semver). Что предполагает, что номер версии записывается как MAJOR.MINOR.PATCH, и вы увеличиваете:

  1. ОСНОВНАЯ версия, когда вы делаете несовместимые изменения API
  2. MINOR, когда вы добавляете функциональность обратно-совместимым образом
  3. PATCH, когда вы делаете исправления ошибок с обратной совместимостью
description

Описание проекта. Постарайтесь держать его коротким и кратким.

author

Автор этого пакета.

bin

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

Это свойство используется пакетами, которые содержат интерфейс командной строки (CLI).

script

Объект, который предоставляет дополнительные команды npm. Объект предполагает, что ключ - это команда npm, а значение - путь к скрипту. Эти сценарии могут выполняться при запуске npm run {command name} или npm run-script {command name} .

Пакеты, содержащие интерфейс командной строки и устанавливаемые локально, могут быть вызваны без относительного пути. Поэтому вместо вызова ./node-modules/.bin/mocha вы можете напрямую вызвать mocha .

main

Основная точка входа в ваш пакет. При вызове require('{module name}') в узле, это будет фактический файл, который требуется.

Настоятельно рекомендуется, чтобы основной файл не вызывал никаких побочных эффектов. Например, требующий основного файла не должен запускать HTTP-сервер или подключаться к базе данных. Вместо этого вы должны создать что-то вроде exports.init = function () {...} в своем основном скрипте.

keywords

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

devDependencies

Это зависимости, которые предназначены только для разработки и тестирования вашего модуля. Зависимости будут установлены автоматически, если не NODE_ENV=production переменная NODE_ENV=production среды NODE_ENV=production . Если это так, вы все равно можете использовать эти пакеты, используя npm install --dev

peerDependencies

Если вы используете этот модуль, то peerDependencies отображает модули, которые вы должны установить рядом с этим. Например, moment-timezone должен устанавливаться рядом с moment потому что это плагин на мгновение, даже если он прямо не require("moment") .

preferGlobal

Свойство, указывающее, что эта страница предпочитает устанавливать глобально, используя npm install -g {module-name} . Это свойство используется пакетами, которые содержат интерфейс командной строки (CLI).

Во всех других ситуациях вы НЕ должны использовать это свойство.

publishConfig

PublishConfig - это объект со значениями конфигурации, которые будут использоваться для публикации модулей. Установленные значения конфигурации переопределяют вашу конфигурацию npm по умолчанию.

Наиболее распространенное использование publishConfig состоит в том, чтобы опубликовать ваш пакет в приватном реестре npm, чтобы у вас все еще были преимущества npm, но для частных пакетов. Это делается простым настройкой URL вашего частного npm как значения для ключа реестра.

files

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

Источник



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow