Logo

DevPro

Practice Questions

What are the metadata fields of a module?

TL;DR

Metadata fields of a module typically include information such as the module's name, version, description, author, license, and dependencies. These fields are often found in a package.json file in JavaScript projects. For example:

{
  "name": "my-module",
  "version": "1.0.0",
  "description": "A sample module",
  "author": "John Doe",
  "license": "MIT",
  "dependencies": {
    "express": "^4.17.1"
  }
}

Metadata fields of a module

Name

The name field specifies the name of the module. It is used to identify the module in the package registry and when it is installed as a dependency.

{
  "name": "my-module"
}

Version

The version field indicates the current version of the module. It follows semantic versioning (semver) guidelines.

{
  "version": "1.0.0"
}

Description

The description field provides a brief summary of what the module does. This is useful for users browsing the package registry.

{
  "description": "A sample module"
}

Author

The author field specifies the name and contact information of the module's author.

{
  "author": "John Doe"
}

License

The license field indicates the licensing terms under which the module can be used. Common licenses include MIT, Apache-2.0, and GPL-3.0.

{
  "license": "MIT"
}

Dependencies

The dependencies field lists other modules that the current module depends on to work correctly. Each dependency is specified with its name and version range.

{
  "dependencies": {
    "express": "^4.17.1"
  }
}

DevDependencies

The devDependencies field lists modules that are only needed for development and testing, not for production.

{
  "devDependencies": {
    "jest": "^26.6.3"
  }
}

Scripts

The scripts field allows you to define script commands that can be run using npm run <script-name>.

{
  "scripts": {
    "start": "node index.js",
    "test": "jest"
  }
}

Keywords

The keywords field is an array of strings that help users find the module when searching in the package registry.

{
  "keywords": ["sample", "module", "example"]
}

Repository

The repository field provides information about the source code repository for the module.

{
  "repository": {
    "type": "git",
    "url": "https://github.com/username/my-module.git"
  }
}

Bugs

The bugs field provides information on where to report issues with the module.

{
  "bugs": {
    "url": "https://github.com/username/my-module/issues"
  }
}

Homepage

The homepage field specifies the URL of the module's homepage.

{
  "homepage": "https://github.com/username/my-module#readme"
}

Further reading

142 / 193