in src/plugman/fetch.js [256:277]
function copyPlugin (pinfo, plugins_dir, link) {
const plugin_dir = pinfo.dir;
const dest = path.join(plugins_dir, pinfo.id);
fs.removeSync(dest);
if (!link && dest.indexOf(path.resolve(plugin_dir) + path.sep) === 0) {
events.emit('verbose', 'Copy plugin destination is child of src. Forcing --link mode.');
link = true;
}
if (link) {
const isRelativePath = plugin_dir.charAt(1) !== ':' && plugin_dir.charAt(0) !== path.sep;
const fixedPath = isRelativePath ? path.join(path.relative(plugins_dir, process.env.PWD || process.cwd()), plugin_dir) : plugin_dir;
events.emit('verbose', 'Linking "' + dest + '" => "' + fixedPath + '"');
fs.symlinkSync(fixedPath, dest, 'junction');
} else {
events.emit('verbose', 'Copying plugin "' + plugin_dir + '" => "' + dest + '"');
fs.copySync(plugin_dir, dest, { dereference: true });
}
return dest;
}