install-module-linked
Version:
Installs and symlinks a module into node_modules
24 lines (23 loc) • 813 B
JavaScript
import spawn from 'cross-spawn-cb';
import { bind } from 'node-version-call-local';
import path from 'path';
import url from 'url';
const __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));
const major = +process.versions.node.split('.')[0];
const workerPath = path.join(__dirname, '..', '..', 'cjs', 'lib', 'install.js');
function run(specifier, dest, callback) {
spawn('npm', [
'install',
specifier
], {
cwd: dest
}, (err)=>{
err ? callback(err) : callback(undefined, path.join(dest, ...specifier.split('/')));
});
}
const worker = major > 0 ? run : bind('>0.12', workerPath, {
callbacks: true
});
export default function install(specifier, dest, callback) {
worker(specifier, dest, callback);
}