install: function()

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');
            }
        },