Подробный package.json

Node.js внешний интерфейс JSON NPM

Управляемое чтение

Когда вы загружаете пакет через npm, в корневом каталоге пакета будет находиться файл package.json, в котором описаны сведения о пакете, такие как имя, номер версии, автор и т. д. Есть также некоторые свойства, с которыми разработчики должны быть знакомы.Следующие свойства являются некоторыми часто используемыми свойствами в процессе разработки.

список свойств

dependencies

Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL

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

devDependencies

Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL

Зависимости в разделе devDependencies представляют собой зависимости, которые требуются во время разработки. В отличие от зависимостей, зависимости не загружаются во время установки.

files

The 'files' field is an array of files to include in your project. If you name a folder in the array, then it will also include the files inside that folder.

Когда вы публикуете пакет, какие конкретные файлы будут опубликованы? Управляется этим свойством.В общем случае это свойство настраивается так.

"files": [

"lib"

]

В этой конфигурации при публикации пакета папка lib публикуется в реестре npm.

main

The main field is a module ID that is the primary entry point to your program. That is, if your package is named foo, and a user installs it, and then does require("foo"), then your main module's exports object will be returned.

Этот атрибут описывает запись пакета.

если существует имяmodule-1Пакет в проекте, через синтаксис commonjs или ES6, вы можете использовать это.

// ES6
import 'module-1' from 'module-1'
// commonjs
const module-1 = require('module-1')

Какова логика выполнения приведенного выше кода?

Дело в том, что он будетnode_modulesНайдите, если он существуетmodule-1package.Если найдено, то идем смотреть есть ли путь к пакетуindex.js, index.jsonфайл, а затем найдитеpackge.jsonЕсть ли в файлеmainполе. Наконец, согласноmainИнформация о конфигурации свойств, найдите указанный файл, чтобы пакет мог быть загружен правильно.

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

В большинстве случаев это свойство настраивается следующим образом.

"main": "lib/index.js"

Ссылка на ссылку