涔嬫墍浠ラ渶瑕佽В鍐虫绫婚棶棰橈紝鍦ㄤ簬鍏徃鐨勯」鐩笟鍔¢渶姹傚拰鍓嶇鎶€鏈殑鎺ㄥ姩銆傞渶瑕佷娇鐢╒ue3寮€鍙戞柊鐨勭粍浠跺簱锛岄渶瑕佸吋瀹筕ue2鐨勪骇鍝侊紙鍏徃鐩墠鐨刅ue2浜у搧涓轰富锛塿ue-demiVueDemi锛堜竴鍗婃硶璇級鏄竴涓紑鍙戝伐鍏凤紝鍙互璁╀綘缂栧啓涓€涓猇ue2鍜?鐨勯€氱敤Vue搴撱€備綔鑰呬篃鏄疺ue寮€鍙戠殑鏍稿績浜虹墿涔嬩竴銆傚浣曟瀯寤篤ue2/3缁勪欢鍏煎搴擄紵1.瀹夎涓€涓猇ue3椤圭洰杩欓噷鎴戞槸閫夋嫨vite瀹夎npmcreatevite@latestpm-ui-coms--templatevue瀹夎瀹屾垚锛岃繘鍏ョ洰褰昿m-ui-comsnpmivue-demi-S淇敼package.json鏂囦欢锛屾枃浠跺唴瀹瑰涓媨"publishConfig":{"registry":"http://192.168.1.200:8081/repository/npm-private/"}}publishConfig鍙戝竷閰嶇疆2.瀹夎涓€涓猇ue2椤圭洰vuecreatevue2瀹夎瀹屾垚锛岃繘鍏ue2npm鐩綍ivue-demi-S淇敼package.json鏂囦欢锛屾枃浠跺唴瀹瑰涓媨"peerDependencies":{"@vue/composition-api":"^1.7.1","vue":"^2.6.14||>=3.2.47"},"peerDependenciesMeta":{"@vue/composition-api":{"optional":true}}}浠ヤ笂vue2鎿嶄綔瀹屾垚鍚庯紝濡傛灉澶辫触锛岄渶瑕侀噸鏂皀pminstall妫€鏌ユ槸鍚﹀畨瑁呭畬鎴愩€傛墽琛岃繖鏉″懡浠わ紝濡傛灉鏄剧ず涓€涓紑鍏砊oVue2锛屽垯琛ㄧず鎴愬姛npxvue-demi-switch2peerDependencies娌″啓杩噉pm鎻掍欢鍖呯殑鍚屽鍙兘瀵筽eerDep鏈夌偣闄岀敓endencies鐨勪綔鐢ㄦ槸鎻愮ず瀹夸富鐜瀹夎婊¤冻鎻掍欢peerDependencies鎸囧畾渚濊禆鐨勫寘锛岀劧鍚庡綋鎻掍欢瀵煎叆鎴栬€呴渶瑕佹彃浠朵緷璧栫殑鍖呮椂锛屾€绘槸寮曠敤瀹夸富鐜缁熶竴瀹夎npm鍖咃紝鏈€鍚庤В鏋愭彃浠跺拰渚濊禆鍖呫€備笉涓€鑷寸殑闂peerDependenciesMeta娣诲姞鍙€夎缃互鍒犻櫎缂哄皯鐨勫绛変緷璧栬鍛婃坊鍔犳瀯寤哄懡浠"scripts":{"lib":"vitebuild--modelib","gulp":"gulplib"}}import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'importpmVueLib2from'./plugins/pmVueLib2'//鑷繁鍐欑殑鑷姩鍖栨瀯寤?涓婁紶importpathfrom'path';//鑺傜偣鎻掍欢锛屼笉闇€瑕佸畨瑁咃紝涓€鑸兘鏄繖涓寘鑷甫鐨勩€俥xportdefaultdefineConfig({plugins:[vue(),pmVueLib2({versionType:'patch'})],optimizeDeps:{exclude:['vue-demi']//濡傛灉vue-demi鏄疺ite闇€瑕佹坊鍔犺繖涓厤缃畗,build:{outDir:'lib',//杈撳嚭鐩綍lib:{entry:path.resolve(__dirname,'./src/packages/install.js'),//鍏ュ彛鏂囦欢鍚?'PmUiComps',//娴忚鍣╱md妯″紡杈撳嚭鐨勫叏灞€鍙橀噺fileName:(format)=>`v3.${format}.js`,//杈撳嚭鏂囦欢鎵╁睍鍚嶇敱鏍煎紡鍐冲畾formats:['es','umd'],//杈撳嚭ES妯″潡鍜寀md},rollupOptions:{//纭繚灏嗕綘涓嶆兂鎵撳寘鍒板簱涓殑渚濊禆澶栭儴鍖杄xternal:['vue','vue-demi'],output:{//瀵逛簬UMD鏋勫缓涓殑杩欎簺澶栭儴渚濊禆mode鎻愪緵涓€涓叏灞€鍙橀噺globals:{vue:'Vue',"vue-demi":'VueDemi'}}}}})pmVueLib2鎻掍欢鍐欎簡涓€涓獀ite鎻掍欢constexec=require('child_process')鏂逛究蹇€熶笂浼犳墦鍖?exec锛?/鎵цnode鍛戒护锛屽彲浠ユ寚瀹氱洰褰昪onstshell=require("shelljs");//鎵ц鏂囦欢鎿嶄綔constchalk=require('chalk');//鏄剧ず褰╄壊鏂囨湰constora=require('ora')//鍛戒护琛屽姞杞絚onstpmVueLib2=(options)=>{//patchminormajorconst_options=Object.assign({versionType:'patch'},options)console.log(chalk.green(`馃殌buildvue3librarysuccessfully`))return{name:'pmVueLib2',//蹇呭~锛屼細鍦╳arning鍜宔rror涓樉绀?..'锛夈€傚紑濮嬶紙锛?exec('npmrunlib',{cwd:'./vue2'},(err,stdout,stderr)=>{if(err){console.warn(newDate(),'鏈兘鏋勫缓vue2搴?);}else{spinner.color='green'spinner.text='鎴愬姛鏋勫缓vue2搴?console.log(chalk.green(`馃殌鎴愬姛鏋勫缓vue2搴揱))exec('npmrungulp',{},(err)=>{if(!err){shell.exec('gitadd.')shell.exec(`gitcommit-mmsg:鑷姩鏇存柊缁勪欢搴揱)shell.exec(`gitpush`)exec(`npm鐗堟湰${_options.versionType}`,{},(err)=>{if(!err){exec('npmpublish',{},()=>{spinner.color='yellow'spinner.text='鏋勫缓瀹屾垚锛岀粍浠跺簱宸叉垚鍔熶笂浼犲埌npm浠撳簱'console.log(chalk.green(`馃殌鏋勫缓瀹屾垚锛岀粍浠跺簱宸蹭笂浼燬uccessfullyuploadednpmrepository`))})}else{console.log(err)}spinner.stop();})}})}});}}}瀵煎嚭榛樿鐨刾mVueLib2锛涚粍浠朵綅缃粺涓€灏嗙粍浠舵斁鍦╟ommon鏂囦欢涓嬫瀯寤哄簱npmrunlibgithub鍦板潃浣跨敤鏈粨搴撳紑鍙?.涓嬭浇椤圭洰浠g爜锛屽湪鏍圭洰褰曚笅鎵цnpminstall2.杩涘叆vue2鐩綍锛岀劧鍚庢墽琛宯pminstall3.鍦ㄦ牴鐩綍涓嬫墽琛宯pmrunlib
