README
npm-hardlink
Hard link npm packages between projects.
This project was developed to fix React hook issues caused by npm link
.
Features
- Super simple to use
- Uses hard links vs symlinks
- Uses npm’s official npm-packlist to establish which files to hard link
- Uses trusted dependencies (chokidar, commander, fs-extra, etc…)
- Very light codebase to audit (less than 150 lines of code)
- Written in TypeScript
Installation
npm install -g npm-hardlink
Usage
$ npm-hardlink -h
Usage: npm-hardlink [options]
Options:
--src <source> path to package (default: process.cwd())
--dest <destination> path to project
--copy copy files instead of using hard links
--install-deps install package dependencies
--install-deps-prod install package production dependencies
--watch watch package for changes
--yes skip confirmation prompt
-h, --help display help for command
Example
In following example, we are developing a React component called react-cms
(packaged as @sunknudsen/react-cms
) that we are planning to publish to npm.
Before publishing @sunknudsen/react-cms
, we would like to import component from project called sunknudsen-website
to see if everything is working (we tried npm link
and things were broken).
$ pwd
/Users/sunknudsen/Code/sunknudsen/react-cms
$ npm-hardlink --dest /Users/sunknudsen/Code/sunknudsen/sunknudsen-website --install-deps --watch
Hard linking package @sunknudsen/react-cms to /Users/sunknudsen/Code/sunknudsen/sunknudsen-website/node_modules/@sunknudsen/react-cms…
[
'lib/CMS.js',
'package.json',
'lib/CMS.js.map',
'README.md',
'lib/CMS.d.ts'
]
? Do you wish to proceed? Yes
Installing @sunknudsen/react-cms dependencies to /Users/sunknudsen/Code/sunknudsen/sunknudsen-website/node_modules/@sunknudsen/react-cms…
Dependencies installed
Watching @sunknudsen/react-cms for changes…
Contributors
Licence
MIT