Source code
Revision control
Copy as Markdown
Other Tools
# Node Package Names
This linter verifies that `package.json` files don't include a `name`
property, unless we are publishing them.
For `package.json` files that are only used for defining dependencies or
commands, we should not include a `name` property, as that can cause confusion
as to if the package is published or not.
## Fixing Node Package Names Errors
- If the directory/package is an imported third party package, it should be added
to {searchfox}`ThirdPartyPaths.txt <tools/rewriting/ThirdPartyPaths.txt>`.
- If the directory/package is not going to be published, remove the `name` and
`version` properties.
- If the directory/package is going to be published:
> - The name must include the `@mozilla/` scope.
> - It must be published under the Mozilla organisation on npmjs.com before landing.
> - Once the package has been published initially, it may be added as an exclusion
> in {searchfox}`node-package-names.yml <tools/lint/node-package-names.yml>`.
## Run Locally
This mozlint linter can be run using mach:
```{eval-rst}
.. parsed-literal::
$ mach lint --linter node-package-names <file paths>
```
## Configuration
This linter is enabled on most of the whole code base.
## Sources
- {searchfox}`Configuration (YAML) <tools/lint/node-package-names.yml>`
- {searchfox}`Source <tools/lint/node-package-names/__init__.py>`