鏈枃鏉ユ簮鍏紬鍙凤細绋嬪簭鍛樻垚鍔熶竴鐩翠互鏉ワ紝鍓嶇宸ョ▼涓殑閰嶇疆澶ч儴鍒嗛兘鏄?js鏂囦欢鎴栬€?json鏂囦欢锛屾渶甯歌鐨勬湁锛歱ackage.jsonbabel.config.jswebpack.config.js鍓嶇寰堝弸濂斤紝鍥犱负鏄垜浠啛鎮夌殑JS瀵硅薄缁撴瀯銆備竴鑸潤鎬侀厤缃細閫夋嫨json鏂囦欢锛岃€屽姩鎬侀厤缃秹鍙婂紩鍏ュ叾浠栨ā鍧楋紝鎵€浠ヤ細閫夋嫨js鏂囦欢銆備篃鏈夊緢澶氭柊鐨勫伐鍏峰悓鏃舵敮鎸佸绉嶉厤缃紝姣斿Eslint銆傛偍鍙互浠庝袱绉嶉厤缃牸寮忎腑杩涜閫夋嫨锛?eslintrc.json.eslintrc.js銆傚悗缂€閰嶇疆鏂囦欢銆備竴寮€濮嬩互涓烘槸鏌愪釜绋嬪簭鐨勪笓鏈夐厤缃紝鍚庢潵鍙戠幇杩欎釜鍚庣紑鐨勬枃浠跺嚭鐜扮殑瓒婃潵瓒婇绻侊紝鐢氳嚦Eslint涔熸敮鎸佺涓夌鏍煎紡閰嶇疆.eslintrc.yml銆傛棦鐒堕亣鍒颁簡锛岄偅灏卞幓鎺㈢储鍚э紒涓嬮潰鎴戜滑浠嶻AML鐨勪骇鐢熻儗鏅€佷娇鐢ㄥ満鏅€佸叿浣撶敤娉曘€侀珮绾ф搷浣滃洓涓柟闈㈡潵浜嗚В涓€涓嬭繖涓祦琛岀殑鐜颁唬閰嶇疆鐨勫ゥ绉樸€傛柊宸ュ叿鐨勫嚭鐜版湁涓や釜鍘熷洜锛氭棫宸ュ叿鍦ㄦ煇浜涘満鏅笅闅句互鎵ц锛岄渶瑕佹洿濂界殑鏇夸唬鏂规銆傝繖涓柊宸ュ叿灞炰簬鍚庝竴绫汇€傚叾瀹炲湪yaml鍑虹幇涔嬪墠锛宩s+json鐢ㄧ殑寰堝ソ锛屾病鏈夐亣鍒扮壒鍒毦澶勭悊鐨勯棶棰橈紱浣嗘槸yaml鍑虹幇鍚庯紝寮€濮嬭寰椾贡涓冨叓绯熶粈涔堢殑銆備簡瑙d箣鍚庯紝瓒婄敤瓒婂枩娆€備竴涓瘝灏辨槸浼橀泤銆傚緢澶氭枃绔犺閫夋嫨yaml鏄洜涓簀son鍚勭闂锛宩son涓嶉€傚悎鍋氶厤缃枃浠讹紝鎴戣寰楁湁鐐瑰じ寮犮€傛垜鏇村€惧悜浜庢妸yaml鐪嬩綔鏄痡son鐨勫崌绾э紝鍥犱负yaml鍦ㄦ牸寮忕畝鍖栧拰浣撻獙涓婄‘瀹炰笉閿欙紝杩欎竴鐐逛笉寰椾笉鎵胯銆傛垜浠潵瀵规瘮涓€涓媃AML鍜孞SON锛屼粠涓や釜鏂归潰鏉ュ垎鏋愶細绠€鍖栦簡浠€涔堬紵JSON姣旇緝楹荤儲鐨勬柟闈箣涓€鏄叾涓ユ牸鐨勬牸寮忚姹傘€傛瘮濡傝繖涓璞★細{name:'ruims'}锛屼笅闈SON鐨勫啓娉曢兘鏄敊璇殑锛?/keywithoutquotationmarksisnotacceptable{name:'ruims'}//keyisnot""notacceptable{'name':'ruims'}//value涓嶆槸""鍙穥"name":'ruims'}瀛楃涓茬殑鍊煎繀椤绘槸k->vare""://鍙湁杩欐牱{"name":"ruims"}铏界劧鏄粺涓€鏍煎紡锛屼絾鏄娇鐢ㄨ捣鏉ョ‘瀹炰笉鏂逛究銆備緥濡傦紝鎴戝湪娴忚鍣ㄤ笂妫€娴嬪埌涓€涓晫闈㈤敊璇€傜劧鍚庡皢鍙傛暟澶嶅埗鍒癙ostman杩涜璋冭瘯銆傝繖鏃跺€欐垜灏卞緱鎵嬪姩缁欐瘡涓睘鎬у拰鍊煎姞涓娾€溾€濓紝闈炲父楹荤儲銆俌AML閲囩敤涓嶅悓鐨勬柟娉曪紝鐩存帴鏉€姝诲瓧绗︿覆绗﹀彿銆備笂杩板璞$殑绛夋晥yaml閰嶇疆濡備笅锛歯ame:ruims鏄殑锛屽氨鏄繖涔堢畝鍗曪紒闄や簡""锛寉aml璁や负{}鍜孾]杩欐牱鐨勭鍙锋槸澶氫綑鐨勶紝鏈€濂戒竴璧峰幓鎺夈€傛墍浠ワ紝浠ヨ繖涓璞℃暟缁勪负渚嬶細{"names":[{"name":"ruims"},{"name":"ruidoc"}]}杞崲鎴恲aml鏄繖鏍风殑锛歯ames:-name:ruims-鍚嶇О锛歳uidoc姣旇緝杩欑绋嬪害鐨勭畝鍖栵紝涓轰粈涔堜笉鍠滄鍛紵娣诲姞浜嗕粈涔堬紵璇村埌鏂板閮ㄥ垎锛屾渶鍊煎緱涓€鎻愮殑鏄痀AML鏀寔娉ㄩ噴銆侸SON鍐欓厤缃笉鑳芥湁娉ㄩ噴锛屼篃灏辨槸璇存垜浠殑閰嶇疆涓嶄細鏈夋敞閲娿€傞厤缃お澶氱殑璇濅細寰堜贡锛岃繖鏄渶涓嶄汉閬撶殑鍦版柟銆傜幇鍦▂aml鏀寔澶囨敞锛屼互鍚庣殑閰嶇疆鍙互杩欐牱锛?搴旂敤鍚嶇Оname:my_app#搴旂敤绔彛port:8080鎶婅繖涓厤缃涪缁欐柊鍚屼簨锛岃繕鎬曚粬鐪嬩笉鎳傞厤缃殑鏄粈涔堬紵闄や簡娉ㄨВ锛岃繕鏀寔閰嶇疆澶嶇敤鐨勭浉鍏冲姛鑳斤紝鍚庨潰浼氫粙缁嶃€傛垜鎺ヨЕ鍒扮殑绗竴涓獃aml閰嶇疆鏄疐lutter椤圭洰鐨勫寘绠$悊鏂囦欢pubspec.yaml銆傝鏂囦欢涓庡墠绔」鐩腑鐨刾ackage.json鍔熻兘鐩稿悓锛岀敤浜庡瓨鏀句竴浜涘叏灞€閰嶇疆鍜屽簲鐢ㄤ緷璧栫殑鍖呭拰鐗堟湰銆傜湅涓€涓嬪畠鐨勫熀鏈粨鏋勶細name:flutter_demodescription:AnewFlutterproject.publish_to:'none'version:1.0.0dependencies:cupertino_icons:^1.0.2dev_dependencies:flutter_lints:^1.0.0鐪嬪埌杩欎釜缁撴瀯鍜宲ackage.json浜嗗悧锛熷熀鏈竴鏍凤紵搴旂敤绋嬪簭渚濊禆椤瑰拰鐗堟湰鍒楀湪dependencies涓嬶紝寮€鍙戜緷璧栭」鍒楀湪dev_dependencies涓嬨€傚悗鏉ュ湪鍋欳I/CD鑷姩鍖栭儴缃茬殑鏃跺€欙紝鐢ㄥ埌浜咷itHubAction銆傚畠闇€瑕佸涓獃aml鏂囦欢鏉ュ畾涔変笉鍚岀殑宸ヤ綔娴侊紝鑰屼笖杩欎釜閰嶇疆瑕佹瘮flutter澶嶆潅鐨勫銆傚叾瀹炰笉鍏夋槸GitHubAction锛屽叾浠栨祦琛岀殑绫讳技鏋勫缓宸ュ叿濡侴itLabCI/CD銆乧ircleci绛夐兘鏄痽aml閰嶇疆鐨勶紝鎵€浠ュ鏋滀綘鐨勯」鐩渶瑕丆I/CD鎸佺画闆嗘垚锛岃偗瀹氭槸涓嶆噦yaml璇硶鐨勩€傚彟澶栵紝鎺ヨЕ杩嘍ocker鐨勫悓瀛︿竴瀹氱煡閬揇ockerCompose锛屽畠鏄疍ocker瀹樻柟鐨勫崟鏈虹紪鎺掑伐鍏凤紝瀹冪殑閰嶇疆鏂囦欢docker-compose.yml涔熸槸濡ュΕ鐨剏aml鏍煎紡銆傜幇鍦―ocker濡傜伀濡傝嵓锛屼笉鍙伩鍏嶅湴瑕佺敤Docker鏉ョ紪鎺掞紝鎵€浠aml璇硶杩熸棭瑕佸厠鏈嶃€備笂闈㈡彁鍒扮殑涓変釜妗堜緥鍑犱箮閮芥槸鐜颁唬鏈€鏂版渶娴佽鐨勬鏋?宸ュ叿銆備粠浠栦滑韬笂鍙互鐪嬪嚭锛寉aml涓€瀹氭槸涓嬩竴浠i厤缃枃浠剁殑鏍囧噯锛屾槸鍓嶅悗绔繍缁寸殑閫氱敤鏍囧噯銆傝浜嗚繖涔堝锛屾槸涓嶆槸杩笉鍙婂緟鎯宠瘯璇曚簡鍛紵涓嬮潰鎴戜滑璇︾粏浠嬬粛yaml璇硶銆俌AML璇硶浠嬬粛yaml璇硶浼氫笌json杩涜瀵规瘮璁茶В锛屾柟渚垮ぇ瀹跺揩閫熺悊瑙c€傚厛鏉ョ湅鐪媦aml鐨勪竴浜涚壒鎬э細鍖哄垎澶у皬鍐欎娇鐢ㄧ缉杩涙潵琛ㄧず灞傜骇鍏崇郴缂╄繘鐨勭┖鏍间釜鏁颁笉鏄己鍒剁殑锛屼絾鏄悓绾у繀椤诲榻?琛ㄧず娉ㄩ噴涓嶫SON鐩告瘮锛屾渶澶х殑鍖哄埆鍦ㄤ簬缂╄繘鏄敤鏉ヨ〃绀虹數骞炽€傝繖闈炲父鎺ヨ繎Python銆傝繕鏈変竴鐐瑰姞寮烘槸鏀寔娉ㄩ噴锛岄粯璁や笉鏀寔JSON锛堣櫧鐒禩S鏀寔锛夛紝杩欏閰嶇疆鏂囦欢涔熷緢閲嶈銆俌AML鏀寔浠ヤ笅鏁版嵁缁撴瀯锛歰bject:objectarrayinjson:arrayinjsonscalar:simpletype(string,value,Boolean,etc.)injson":1,"name":"YangChenggong","isman":true}杞崲鎴恲aml:id:1name:YangChenggongisman:true瀵硅薄涓烘牳蹇冪粨鏋勶紝key鍊肩殑琛ㄧず鏂瑰紡涓篬key]:锛屾敞鎰忚繖閲屽啋鍙峰悗闈㈡湁涓€涓┖鏍硷紝蹇呴』涓嶄細缂哄け锛寁alue鐨勫€兼槸涓€涓爣閲忥紝榛樿涓嶉渶瑕佸紩鍙稟rray鏁扮粍鐨勭粨鏋勫拰瀵硅薄绫讳技锛屼笉鍚岀殑鏄湪key鍓嶅姞浜嗕竴涓?绗﹀彿琛ㄧず杩欎釜鏄竴涓暟缁勯」锛屾敞鎰忚繖閲岃繕鏈変竴涓┖鏍硷紝涓嶈兘灏?hello-world杞垚JSON鏍煎紡濡備笅锛歔"hello","world"]浜嗚В浜嗗熀鏈殑瀵硅薄鍜屾暟缁勪箣鍚庯紝鎴戜滑鏉ョ湅涓€涓鏉傜殑缁撴瀯锛屼紬鎵€鍛ㄧ煡锛屽湪瀹為檯椤圭洰閰嶇疆涓緢灏戞湁绠€鍗曠殑瀵硅薄鎴栬€呮暟缁勶紝澶ч儴鍒嗛兘鏄祵濂梠b椤圭洰鍜屾暟缁勩€傚湪js涓垜浠О涔嬩负瀵硅薄鏁扮粍锛屽湪yaml涓垜浠О涔嬩负澶嶅悎缁撴瀯銆傛瘮濡傝繖鏍蜂竴涓◢寰鏉傜殑JSON锛歿"name":"鏉ㄦ垚鍔?,"isman":true,"age":25,"tag":["Sunshine","Handsome"],"address":[{"c":"鍖椾含","a":"娴锋穩鍖?},{"c":"澶╂触","a":"婊ㄦ捣鏂板尯"}]}YAML杞崲鎴愬鍚堢粨鏋勶細name:YangChenggongisman:trueage:25tag:-Sunshine-Handsome鍦板潃锛?c:鍖椾含a:娴锋穩鍖?c:澶╂触a:婊ㄦ捣鏂板尯濡傛灉鎯冲皾璇曟洿澶嶆潅鐨勭粨鏋勬敼閫狅紝鍙互鍦ㄦ湰缃戦〉鍦ㄧ嚎缁冧範銆係calarScale姣旇緝绠€鍗曪紝瀵瑰簲js鐨勫熀鏈暟鎹被鍨嬶紝鏀寔濡備笅锛歴tring,boolean,null鍜宼ime鏄袱涓瘮杈冪壒娈婄殑锛宯ull鐢▇绗﹀彿琛ㄧず锛屾椂闂村鐢?021鐨勬牸寮忚〃绀?12-21锛屼緥濡傦細who:~date:2019-09-10杞崲鎴怞S:{who:null,date:newDate('2019-09-10')}楂樼骇鎿嶄綔鏈熼棿閬囧埌浜嗕竴浜涚壒娈婂満鏅痽aml鐨勫疄鎴橈紝鍙兘闇€瑕佷竴浜涚壒娈婄殑澶勭悊銆傚瓧绗︿覆澶暱鍦╯hell涓紝鎴戜滑缁忓父浼氱湅鍒颁竴浜涘弬鏁板緢澶氥€佸懡浠ゅ緢闀跨殑鍛戒护銆傚鏋滃懡浠ら兘鍐欏湪涓€琛屼腑锛屽彲璇绘€т細寰堝樊銆傚亣璁句笅闈㈡槸涓€涓緢闀跨殑鍛戒护锛?dockerrun--namemy-nginx-dnginx鍦╨inux涓彲浠ヨ繖鏍峰鐞嗭細$dockerrun\--namemy-nginx\-dnginx灏辨槸鍦ㄦ瘡琛屽悗闈㈠姞涓奬绗﹀彿鏂伴槦銆傜劧鑰岋紝瀹冨湪YAML涓洿绠€鍗曘€備笉闇€瑕佸姞浠讳綍绗﹀彿锛岀洿鎺ユ敼琛屽嵆鍙細cmd:dockerrun--namemy-nginx-dnginxYAML榛樿浼氭妸鎹㈣杞崲鎴愮┖鏍硷紝鎵€浠ヨ浆鎹㈠悗鐨刯son濡備笅锛屽氨鏄繖鏍锋垜浠渶瑕侊細{"cmd":"dockerrun--namemy-nginx-dnginx"}浣嗘槸锛屾湁鏃跺€欙紝鎴戜滑鐨勮姹傛槸淇濈暀鎹㈣绗﹁€屼笉鏄皢鍏惰浆鎹负绌烘牸锛岄偅涔堟垜浠簲璇ユ€庝箞鍋氬憿锛熻繖涓篃绠€鍗曪紝鍔犱竴涓獆灏卞彲浠ヤ簡绗竴琛岀殑绗﹀彿锛歝md:|dockerrun--namemy-nginx-dnginx杞垚json鍙樻垚杩欐牱锛歿"cmd":"dockerrun\n--namemy-nginx\n-dnginx"}鑾峰彇閰嶇疆鑾峰彇閰嶇疆鏄寚濡備綍鑾峰彇浠g爜锛圝S锛変腑YAML鏂囦欢涓畾涔夌殑鏌愪釜閰嶇疆锛熸瘮濡傚墠绔湪package.json涓湁涓€涓獀ersion閰嶇疆椤规潵琛ㄧず搴旂敤鐨勭増鏈€傛垜浠兂鍦ㄤ唬鐮佷腑鑾峰彇鐗堟湰锛屽彲浠ヨ繖鏍峰啓锛歩mportpackfrom'./package.json'console.log(pack.version)JSON灏卞彲浠ヤ簡鐩存帴瀵煎叆锛孻AML涓嶈锛岄偅鎬庝箞鍔炲仛锛熸垜浠寜鐜鏉ュ垎鏋愶細鍦ㄦ祻瑙堝櫒涓紝娴忚鍣ㄤ腑鐨勪唬鐮佹槸鐢╳ebapck鎵撳寘鐨勶紝鎵€浠ユ坊鍔犱竴涓猯oader锛?yarnadd-Dyaml-loader鐒跺悗閰嶇疆loader锛?/webpack.config.jsmodule.exports={module:{rules:[{test:/\.ya?ml$/,type:'json',//Webpackv4瑕佹眰use:'yaml-loader'}]}}鍦ㄧ粍浠朵腑浣跨敤锛歩mportpackfrom'./package.yaml'console.log(pack.version)鍦∟ode.js涓紝Node.js鐜涓病鏈塛ebpack锛屾墍浠ヨ鍙杫aml閰嶇疆鐨勬柟娉曚篃涓嶄竴鏍枫€傚厛瀹夎涓€涓猨s-yaml妯″潡锛?yarnaddjs-yaml鐒跺悗閫氳繃妯″潡鎻愪緵鐨勬柟娉曡幏鍙栵細constyaml=require('js-yaml')constfs=require('fs')constdoc=yaml.load(fs.readFileSync('./package.yaml','utf8'))console.log(doc.version)閰嶇疆椤瑰鐢ㄩ厤缃」澶嶇敤鏄寚瀵逛簬瀹氫箟濂界殑閰嶇疆锛岀洿鎺ュ紩鐢ㄥ悗缁殑閰嶇疆锛岃€屽畠灏辨槸涓嶅啓涓€閬嶏紝浠庤€岃揪鍒板鐢ㄧ殑鐩殑銆傚湪YAML涓畾涔夌殑鍙噸鐢ㄩ」绉颁负閿氱偣锛岀敤&;鏍囪銆傚紩鐢ㄧ殑閿氱偣鐢?鏍囪銆俷ame:&namemy_configenv:&envversion:1.0compose:key1:*namekey2:*env瀵瑰簲鐨凧SON濡備笅锛歿"name":"my_config","env":{"version":1},"compose":{"key1":"my_config","key2":{"version":1}}}浣嗘槸閿氱偣鏈変釜缂虹偣锛屽氨鏄笉鑳戒綔涓哄瓧绗︿覆涓殑鍙橀噺銆備緥濡傦細name:&namemy_configcompose:key1:*namekey2:mynameis*name姝ゆ椂key2鐨勫€间负鏅€氬瓧绗︿覆_mynameis*name_锛屽紩鐢ㄥけ鏁堛€傚叾瀹炲湪瀹為檯寮€鍙戜腑锛屽湪瀛楃涓蹭腑浣跨敤鍙橀噺鏄緢甯歌鐨勩€傛瘮濡傛煇涓矾寰勫湪涓€涓鏉傜殑鍛戒护涓澶氭浣跨敤锛岄偅涔堣繖涓矾寰勫簲璇ユ槸涓€涓彉閲忥紝鍦ㄥ涓懡浠や腑澶嶇敤銆侴itHubAction涓湁杩欐牱鐨勬敮鎸侊紝瀹氫箟涓€涓幆澧冨彉閲忥紝鐒跺悗鍦ㄥ叾浠栧湴鏂瑰鐢細env:NAME:testdescribe:Thisappiscalled${NAME}杩欑瀹炵幇绫讳技浜庡湪webpack涓娇鐢ㄧ幆澧冨彉閲忥紝鍦ㄦ瀯寤虹殑鏃跺€欑敤鐩稿簲鐨勫瓧绗︿覆鏇挎崲鍙橀噺銆傚鏋滆繖绡囨枃绔犲浣犳湁鎵€鍚彂锛岃鐐逛釜璧烉煈嶄负浜嗘洿濂界殑淇濇姢鍘熷垱锛屾垜鎯充簡瑙f洿澶氾紝涓嬩竴绡囨垜浼氬彂鍦ㄥ井淇″叕浼楀彿鍓嶇妯靛か銆傛湰鍏紬鍙蜂粎鍘熷垱锛屾瘡鍛ㄨ嚦灏戜竴绡囦紭璐ㄦ枃绔狅紝鍏虫敞鍓嶇宸ョ▼涓庢灦鏋勩€丅FF灞傜殑鍓嶇杈圭晫鎺㈢储銆侀泦鎴愬紑鍙戜笌浜や粯绛夊疄璺典笌鎬濊€冦€傚彟澶栵紝鎴戣繕寤轰簡涓€涓井淇$兢锛屼负瀵硅繖涓柟鍚戞劅鍏磋叮鐨勫悓瀛︽彁渚涗氦娴佸拰瀛︿範銆傜兢閲屾湁澶у巶鐨勫ぇ鑰佹澘锛屾湁鎺橀噾lv6鐨勯珮鎵嬶紝涔熸湁鏇村鎯崇爺绌惰繖涓柟鍚戠殑鍚屽銆備竴璧蜂氦娴併€佸垎浜€佸涔犲惂~濡傛灉浣犱篃鏈夊叴瓒f兂浜嗚В鏇村锛屾杩庡姞鎴戝井淇uidoc鎷変綘杩涚兢~
