                 log '>> r.js for PC'.cyan
                 log buildResponse
 
-                Promise.all([
-                    self.copy_to_dist join(require_temp_path, 'js', 'player.js'), 'player.js'
-                    self.copy_to_dist join(require_temp_path, 'js', 'plugin', 'equalizer.js'), 'equalizer.js'
-                    self.copy_to_dist join(require_temp_path, 'js', 'plugin', 'lrc.js'), 'lrc.js'
-                ]).then ->
+                Promise.all(
+                    opts_pc.modules.map (mod) ->
+                        file = mod.name.replace(/^muplayer/, 'js') + '.js'
+                        from = join(require_temp_path, file)
+                        to = file.split('/').slice(-1)[0]
+                        self.copy_to_dist from, to
+                ).then ->
                     opts_webapp = _.cloneDeep opts_pc
                     opts_webapp.pragmas.FlashCoreExclude = true
                     opts_webapp.modules = [

            paths:
                'muplayer': '.'

        opts_pc = _.merge(opts_pc, options.pc, (a, b) ->
            _.isArray(a) and a.concat(b) or undefined
        )

        new Promise (resolve) ->
            # PC

        ).then ->
            log '>> Compress js done.'.cyan

    add_license: (match = '*.js') ->
        cfg = require '../bower'
        info = """
            // @license
