UNPKG

alias-module

Version:

Alias your local node modules to be required like installed modules

27 lines (22 loc) 798 B
var fs = require('fs'); var path = require('path'); module.exports = function( name, from ){ var nm = path.join( process.cwd(), 'node_modules' ); var dir = path.join( nm, name ); var isDir = fs.statSync( from ).isDirectory(); var to = isDir ? dir : path.join( dir, 'index.js' ); if ( !fs.existsSync( nm ) ){ fs.mkdirSync( nm ); } // Ensure it isn't already a node_module if ( fs.existsSync( path.join( dir, 'package.json' ) ) ){ throw new Error('Cannot alias module `' + name + '` because a node module already exists with that name'); } // Clear out previous if ( fs.existsSync( dir ) ){ fs.unlinkSync( to ); if ( !isDir ) fs.rmdirSync( dir ); } if ( !isDir ) fs.mkdirSync( dir ); fs.symlinkSync( from, to, isDir ? 'dir' : 'file' ); };