diff --git a/bin/templates/cordova/lib/pluginHandlers.js b/bin/templates/cordova/lib/pluginHandlers.js index 24cda4da..8008dcbc 100644 --- a/bin/templates/cordova/lib/pluginHandlers.js +++ b/bin/templates/cordova/lib/pluginHandlers.js @@ -214,10 +214,17 @@ function copyFile (plugin_dir, src, project_dir, dest, link) { throw new CordovaError('Destination "' + dest + '" for source file "' + src + '" is located outside the project'); shell.mkdir('-p', path.dirname(dest)); - + var srcStat = fs.statSync(src); if (link) { - fs.symlinkSync(path.relative(path.dirname(dest), src), dest); - } else if (fs.statSync(src).isDirectory()) { + //CB-11683 We need to handle linking to directories on our own because Windows doesn't. + var type; + if (srcStat.isDirectory()) { + type = 'dir'; + } else { + type = 'file'; + } + fs.symlinkSync(path.relative(path.dirname(dest), src), dest, type); + } else if (srcStat.isDirectory()) { // XXX shelljs decides to create a directory when -R|-r is used which sucks. http://goo.gl/nbsjq shell.cp('-Rf', src+'/*', dest); } else {