npm link

Scenario

If you develop a module but have local dependencies, which have been published to npm registry. If you want to use them like other published node modules. For examples, use require('local_module'), declaring dependencies in app using the module name as it’s published. Besides, the changes in the dependent module will reflect instantly to the app without reinstallation. Then npm link comes to solve the problem.

Description

Package linking is a two-step process. First npm link in a package folder will create a symlink in the global folder {prefix}/node_modules/ that links to the package where the npm link command was executed. (prefix is set in npm config). It will also link any bins in the package to {prefix}/bin/{name}. Next, in some other location, npm link package_name will create a symbolic link from globally-installed package_name to node_modules of the current folder. (package_name is taken from package.json, not from the directory name). The package_name can be optionally prefixed with a scope. The scope must be preceded by an @ symbol and followed by a slash.
For example.

cd ~/projects/node-redis    # go into the package directory
npm link                    # creates global link
cd ~/projects/node-bloggy   # go into some other package directory.
npm link redis              # link-install the package

Any changes to ~/projects/node-redis will be reflected in ~/projects/node-bloggy/node_modules/node-redis/.
You could also use the shortcut:

cd ~/projects/node-bloggy  # go into the dir of your main project
npm link ../node-redis     # link the dir of your dependency

It works the same. And if the linked package is scoped, the link command must include that scope.

npm link @myorg/privatepackage

你可能感兴趣的:(npm)