www.LinuxHowtos.org
NPM\-SCOPE
Section: (7)Updated: December 2016
Index Return to Main Contents
NAME
npm-scope - Scoped packagesDESCRIPTION
All npm packages have a name. Some package names also have a scope. A scope follows the usual rules for package names (url-safe characters, no leading dots or underscores). When used in package names, preceded by an @-symbol and followed by a slash, e.g.-
@somescope/somepackagename
Installing scoped packages
Scoped packages are installed to a sub-folder of the regular installation folder, e.g. if your other packages are installed in node_modules/packagename, scoped modules will be in node_modules/@myorg/packagename. The scope folder (@myorg) is simply the name of the scope preceded by an @-symbol, and can contain any number of scoped packages. A scoped package is installed by referencing it by name, preceded by an @-symbol, in npm install:-
npm install @myorg/mypackage
-
"dependencies": { "@myorg/mypackage": "^1.3.0" }
Requiring scoped packages
Because scoped packages are installed into a scope folder, you have to include the name of the scope when requiring them in your code, e.g.-
require('@myorg/mypackage')
Publishing scoped packages
Scoped packages can be published from the CLI as of npm@2 and can be published to any registry that supports them, including the primary npm registry. (As of 2015-04-19, and with npm 2.0 or better, the primary npm registry does support scoped packages) If you wish, you may associate a scope with a registry; see below.Publishing public scoped packages to the primary npm registry
To publish a public scoped package, you must specify --access public with the initial publication. This will publish the package and set access to public as if you had run npm access public after publishing.Publishing private scoped packages to the npm registry
To publish a private scoped package to the npm registry, you must have an npm Private Modules https://www.npmjs.com/private-modules account. You can then publish the module with npm publish or npm publish --access restricted, and it will be present in the npm registry, with restricted access. You can then change the access permissions, if desired, with npm access or on the npmjs.com website.Associating a scope with a registry
Scopes can be associated with a separate registry. This allows you to seamlessly use a mix of packages from the primary npm registry and one or more private registries, such as npm Enterprise. You can associate a scope with a registry at login, e.g.-
npm login --registry=http://reg.example.com --scope=@myco
-
npm config set @myco:registry http://reg.example.com
SEE ALSO
-
- *
- npm help install
- *
- npm help publish
- *
-
npm help access