package.json
package.json is used for npm package definition.
See npm Documentation for more details.
Optional
The package.json is optional on the platform. It will be automatically created when released to a npm registry via the release feature.
Enhanced
If a package.json exists, it will automatically be enhanced with the following properties when released on npm via the release feature:
name(overridden)version(overridden)author(if not present)type: "module"(if not present)homepage(if not present)filesdependencies
Dependencies
As described in chapters JavaScript and TypeScript, bare imports are automatically resolved on npm. In other words, there is no obligation to define dependencies in package.json.
If a dependency is not defined in package.json, the latest version of the dependency is used.
If a dependency is defined in package.json, then the specific version will be used.
{ "dependencies" :
{
"foo" : "1.0.0",
"bar" : "^2.0.0"
...
}
}
See npm documentation about dependencies for more details about version formats.
Aliases
Aliases are supported through the alias field in package.json.
package.json
{
...
"alias": {
"react": "preact/compat",
"react-dom": "preact/compat",
}
...
}
In this example react and react-dom imports will be resolve to preact/compat.
Template variables
Some variables can be injected into package.json when released to npm.
{
"homepage": "{{ homepage }}",
"description": "Package {{ name }}",
...
}
Variables available:
id: ID of the component on the platformname: name of the component on the platformauthor: GitHub account name (for individuals)version: Version number to be releasedhomepage: URL link to the editoryear: Current year
Please open a feature request for new variables
Recommended package.json
package.json
{
"name": "<auto-filled>",
"version": "<auto-filled>",
"description": "My description",
"author": {
"name" : "Barney Rubble",
"email" : "b@rubble.com",
"url" : "http://www.barnyrubble.com/"
}
"license": "ISC",
"type": "module",
"dependencies": {
...
}
}