in lib/plugman/pluginHandlers.js [196:216]
install: function (obj, plugin, project, options) {
// Copy the plugin's files into the www directory.
const moduleSource = path.resolve(plugin.dir, obj.src);
const moduleName = `${plugin.id}.${obj.name || path.basename(obj.src, path.extname(obj.src))}`;
// Read in the file, prepend the cordova.define, and write it back out.
let scriptContent = fs.readFileSync(moduleSource, 'utf-8').replace(/^\ufeff/, ''); // Window BOM
if (moduleSource.match(/.*\.json$/)) {
scriptContent = `module.exports = ${scriptContent}`;
}
scriptContent = `cordova.define("${moduleName}", function(require, exports, module) {\n${scriptContent}\n});\n`;
const moduleDestination = path.resolve(project.www, 'plugins', plugin.id, obj.src);
fs.mkdirSync(path.dirname(moduleDestination), { recursive: true });
fs.writeFileSync(moduleDestination, scriptContent, 'utf-8');
if (options && options.usePlatformWww) {
const platformWwwDestination = path.resolve(project.platformWww, 'plugins', plugin.id, obj.src);
fs.mkdirSync(path.dirname(platformWwwDestination), { recursive: true });
fs.writeFileSync(platformWwwDestination, scriptContent, 'utf-8');
}
},