jquery加载单文件vue组件

/**注册组件 */
    function registerComponent(name){
        dm[name] = {};
        Vue.component(name + '-component', function(resolve, reject){
            $.get('./modules/' + name + '.vue').then(function(rv){
                var temp = rv.match(/<template[^>]*>([\s\S]*?)<\/template>/)[1].replace(/(^\s+)|\n/g, ''),
                    script = rv.match(/<script[^>]*>([\s\S]*?)<\/script>/)[1].replace(/(^\s+)|\n/g, '');
                script = (new Function('return ' + script))();
                script.template = temp;
                script.props || (script.props=["param"]);
                script.data || (script.data=function(){ return JSON.parse(JSON.stringify(this.param))});
                
                resolve(script);
            }).catch(function(err){
                console.error(err);
                resolve({
                    template: '<div >NOT FOUND</div>'
                });
            });
        });
    }