package.json

这篇翻译不完整。请帮忙从英语翻译这篇文章

The package.json file contains manifest data for your add-on, providing not only descriptive information about the add-on for presentation in the Add-ons Manager, but other metadata required of add-ons.

一些条目, 比如icon, namedescription, 有类似install manifest的格式, 并且package.json会写入install manifest, 当使用jpm xpi的时候.

Others, such as lib, permissions, and preferences, represent instructions to the jpm tool itself to generate and include particular code and data structures in your add-on.

其他如lib, permissionspreferences表示使用jpm工具的步骤, 生成你扩展包含的特殊代码和数据结构.

创建manifest

package.json起初是通过运行jpm init生成的,通常在扩展的根目录.比如下面(假设扩展目录是"my-addon")

{
  "name": "my-addon",
  "title": "my-addon",
  "id": "jid1-1FERGV45e4f4f",
  "description": "a basic add-on",
  "author": "",
  "license": "MPL-2.0",
  "version": "0.1"
}

如果你使用新的jpm tool话,可以方便的从package.json获取manifest数据, 通过require其他模块的方式:

var title = require("./package.json").title;

Key reference

package.json may contain the following keys:

author

The name of the package's original author; this could be the name of a person or a company. Defaults to an empty string. It may include a optional URL in parentheses and an email address in angle brackets.

This value will be used as the add-on's em:creator element in the install.rdf file generated by cfx.

Note: jpm supports NodeJS people fields.
contributors

An array of additional author strings, identifying other contributors to the add-on.

These values will be used as the add-on's em:contributor elements in its install.rdf.

Note: This is deprecated along with cfx; it's not available when using jpm.
dependencies

A string or an array of strings specifying the names of packages that this add-on requires in order to function properly.

description

The add-on's description; this is a human-readable message describing what the add-on does. This defaults to the text "a basic add-on".

This value will be used as the add-on's em:description element in its install.rdf.

engines

Object with supported applications (key) and required version numbers (value).

  • firefox: Firefox Desktop
  • fennec: Firefox for Android

Example:

  "engines": {
    "firefox": ">=38.0a1",
    "fennec": ">=38.0a1"
  }
fullName
Note: This is deprecated along with cfx; it's not available when using jpm.

The full name of the package. It can contain spaces.

If this key is present its value will be used as the add-on's em:name element in its install.rdf.

harnessClassID
Note: This is deprecated along with cfx; it's not available when using jpm.

String in the GUID format.

This is used as a classID of the "harness service" XPCOM component. Defaults to a random GUID generated by cfx.

homepage

The URL of the add-on's website.

This value will be used as the add-on's em:homepageURL element in its install.rdf.

icon

The path to an image file containing the icon for the add-on. Defaults to icon.png. If no icon is specified, the standard add-on icon will be used by default.

When using jpm, relative path to the data directory (to make it re-usable for add-on HTML content) does not currently work. Instead you have to use following syntax:

resource://ID/data/icon-name.png

ID is the value from the id field. If it does not begin with the @-character, then @ has to be escaped as -at- and . as -dot-. If the ID is a GUID, the curly braces used in the id field are not included.

This value will be used as the add-on's em:iconURL element in its install.rdf.

The icon may be up to 48x48 pixels in size (although a bigger icon is tolerated here too)

icon64

Note: This is deprecated along with cfx; it's not available when using jpm.

The path to an image containing the large icon for the add-on. Defaults to icon64.png. If you don't provide an icon here, the same icon as specified by icon will be used.

This value will be used as the add-on's em:icon64URL element in its install.rdf.

The icon may be up to 64x64 pixels in size.

id

A globally unique identifier for the add-on.

This value will be used as the add-on's em:id element in its install.rdf.

See the Program ID documentation.

lib

String representing the top-level module directory provided in this add-on. Defaults to "lib".

Note: This is deprecated along with cfx and is not available when using jpm.

license

The name of the license under which the add-on is distributed, with an optional URL in parentheses. Defaults to "MPL-2.0".

Note: It is recommend that you use an SPDX license ID.

main

A string representing the name of a program module that is located in one of the top-level module directories specified by lib. Defaults to "main".

name

The add-on's name. This name cannot contain spaces or periods, and defaults to the name of the parent directory.

When the add-on is built as an XPI, if the fullName and title keys are not present, name is used as the add-on's em:name element in its install.rdf.

packages

Note: This is deprecated along with cfx and is not available when using jpm.

A string pointing to a directory containing additional packages. Defaults to "packages".

permissions

A set of permissions that the add-on needs.

private-browsing: a boolean indicating whether or not the add-on supports private browsing. If this value is not true or is omitted, then the add-on will not see any private windows or objects, such as tabs, that are associated with private windows. See the documentation for the private-browsing module.

cross-domain-content: a list of domains for which content scripts are given cross-domain privileges to access content in iframes or to make XMLHTTPRequests. See the documentation for enabling cross-domain content scripts.

multiprocess: a Boolean value declaring whether this add-on is, or is not, compatible with multiprocess Firefox.

Note the multiprocess permission is not supported by cfx.

preferences

An array of JSON objects that use the following keys: name,type, value, title, and description. These JSON objects will be used to create a preferences interface for the add-on in the Add-ons Manager.

See the documentation for the simple-prefs module.

preferences-branch Use this to specify an alternative branch for your add-on's simple-prefs. See "Simple-prefs in the preferences system" for more details.
title

The human-readable title of the package; this can contain spaces.

If this key is present its value will be used as the add-on's em:name element in its install.rdf.

translators

An array of strings listing the people who contributed to the localization of this add-on.

These values will be used as the add-on's em:translator elements in its install.rdf.

Note: jpm supports NodeJS people fields.
unpack

Same as the unpack in an install.rdf file.

Useful when the extension contains binaries.

updateKey

Same as the updateKey in an install.rdf file.

See Supporting updates for self-hosted add-ons.

Note: This key is only available with jpm.

Same as the updateLink for an update.rdf file. Previously was --update-link in cfx.

See Supporting updates for self-hosted add-ons.

Note: This key is only available with jpm.

updateURL

Same as the updateURL for an install.rdf file.

See Supporting updates for self-hosted add-ons.

Note: This key is only available with jpm.

version

String representing the version of the add-on. Defaults to "0.0.1".

This value is used as the add-on's em:version element in its install.rdf.

Note: For jpm the version must be a valid semver.

 

文档标签和贡献者

 此页面的贡献者: Meteormatt
 最后编辑者: Meteormatt,