鐥涚偣鍦ㄦ棩甯稿紑鍙戜腑锛屾垜浠粡甯镐細鍦ㄩ」鐩腑寮曠敤寰堝渚濊禆鍖咃紝浣嗘槸闅忕潃渚濊禆鍖呯殑鍗囩骇锛屾垜浠殑椤圭洰渚濊禆瓒婃潵瓒婇毦缁存姢锛岀増鏈紩鐢ㄥ寘涔嬮棿涔熻鎴戜滑寰堝ご鐤笺€侺erna鍖呯鐞嗗畼缃戜粙缁嶏紝Lerna鏄竴涓鐞嗗寘鍚涓寘锛坧ackage锛夌殑JavaScript椤圭洰鐨勭鐞嗗伐鍏凤紝閽堝浣跨敤git鍜宯pm绠$悊澶氬寘浠g爜浠撳簱鐨勫伐浣滄祦绋嬭繘琛屼簡浼樺寲銆侺ernanpm瀹夎浣跨敤鏂规硶ilerna-g鍏ㄥ眬瀹夎鏂板缓鏂囦欢澶箃each-lerna锛宑dteach-lerna锛屽垵濮嬪寲椤圭洰lernainit锛屽彲浠ョ湅鍒板垵濮嬪寲椤圭洰鐨勭洰褰曞涓嬶細lerna閰嶇疆lerna閰嶇疆涓哄涓嬶細{"version":"0.0.0","workspaces":true,"npmClient":"yarn"}package.json閰嶇疆濡備笅{"name":"root","private":true,"devDependencies":{"lerna":"^4.0.0"},"packages":["packages/*"]}lerna.json涓厤缃殑"npmClient":"yarn"椤规槸npm瀹夎渚濊禆yarn鎵ц瀹夎銆傚垱寤虹粍缁囷紝鐧诲綍npmjs.com娉ㄥ唽锛岀偣鍑诲ご鍍忔坊鍔犵粍缁囷紝鍒涘缓涓€涓睘浜庤嚜宸辩殑鏂扮粍缁囥€傚垱寤烘柊缁勭粐鍚庯紝鍒涘缓鍖呭涓婰ernaCreate@bobocode-todos/utilspackagelernacreate@bobocode-todos/utils鎵ц鍛戒护鍚庯紝杩涘叆瀵瑰簲鍊肩洰褰曞涓嬪湪鍒涘缓@bobocode-todos/request鍖呭悓鏍风殑鏂规硶lernacreate@bobocode-todos/request姝ゆ椂鎴戜滑鐨刾ackages鏂囦欢澶逛笅鏈変袱涓寘lerna鏌ョ湅鍖呮墽琛宭ernalslerna鍚屾椂缁欏寘娣诲姞渚濊禆浠ユ坊鍔爈odash涓轰緥锛屾墽琛宭ernaadd鏍圭洰褰曚笅鐨刲odashlerna浣滀负鍖呭崟鐙畨瑁呬緷璧?--scope)浠ユ坊鍔燾halk涓轰緥锛屼负@bobocode-todos/utilspackage娣诲姞渚濊禆lernaaddchalk--scope@bobocode-todos/utils鍚岀悊锛屼娇鐢ㄤ互娣诲姞axios涓轰緥锛屼负@bobocode-todos/reques鍖呮坊鍔犱緷璧杔ernaaddaxios--scope@bobocode-todos/requestlerna鎵ц瀹夎渚濊禆锛屼細瀹夎鍖呬笅鐨勬墍鏈変緷璧杔ernabootstraplerna鎵цcleandependencies锛屾墍鏈塶ode_moduleslernacleanlerna浼氳娓呯┖鍙戝竷鍖呰繃绋嬬畝鍗曟祴璇曪紝淇敼@bobocode-todos/utils鐨刲ib/utils.js'usestrict';constchalk=require('chalk');functionutils(){console.log(chalk.blue('utilspackage!'));}module.exports=utils;淇敼@bobocode-todos/request'slib/request.js'usestrict';constaxios=require('axios');functiongetDogImg(){leturl='https://dog.ceo/api/breed/hound/鍥剧墖/闅忔満';axios.get(url).then(res=>{console.log(res.data.message);})}getDogImg()module.exports=getDogImg;涓轰袱涓寘娣诲姞.gitignore锛岃緭鍏ode_modulestest娣诲姞鎻愪氦浠g爜gitadd.gitcommit-m"initproject"gitremoteaddorigin浣犺嚜宸辩殑浠撳簱鍦板潃鎵цnpmlogin鐧诲綍npm锛岃緭鍏ョ敤鎴峰悕鍜屽瘑鐮侊紝鏈€鍚庤緭鍏ラ獙璇佺爜gitpush--set-upstreamoriginmaster鍏堟妸浠g爜鎺ㄩ€佸埌浠撳簱鏈€鍚庢墽琛宭ernapublish鍙戝竷椤圭洰锛屽彲浠ョ湅鍒發erna瀵规垜浠殑鍙戝竷鍋氫簡寰堝鍙嬪ソ鐨勬彁绀猴紝杈撳叆y鍗冲彲鍚屾剰鎵ц锛屾渶鍚庡彲浠ョ湅鍒板彂甯冩垚鍔熸煡鐪媑ithub浠撳簱锛屼細鍙戠幇git浼氬府浣犳墦涓妕ag涓簐0.0.1鍐嶇湅npmjs.com锛屼細鍙戠幇宸茬粡鎴愬姛鍙戝竷浜嗕袱涓寘锛屾煡鐪嬪寘鏄惁姝e父浣跨敤銆傛垜浠湪鐩綍涓嬫柊寤簍est鏂囦欢澶癸紝鏂板缓鏂囦欢test.js锛屾墽琛屽畨瑁呬緷璧杗pminstall@bobocode-todos/utils--savetest.js濡備笅constutils=require('@bobocode-todos/鏁堢敤');鏁堢敤();鍦╬ackage.json涓坊鍔犻厤缃?scripts":{"test":"nodeutils.test.js"}锛屾墽琛宯pmRuntest锛屽彲浠ョ湅鍒拌緭鍑烘甯革紝杈撳嚭涓庡寘鐨勬洿鏂版棤鍏筹紝鍙戝竷淇敼utils鍖呬笅鐨剅eadme.md銆傛鏂囦欢淇敼鎻愪氦鍚庯紝灏嗘垚涓簄pm鍖呬笂鐨勬枃妗equire('@bobocode-todos/utils');utils();```褰撲綘鎵цlernapublish鏃讹紝浣犱細鍙戠幇鏈変袱涓彁绀烘瘡涓寘閮介渶瑕佹洿鏂帮紝浣嗘槸鐜板湪鎴戜滑鍙洿鏀逛竴涓寘鐨勫唴瀹癸紝灏辨槸涓嶆槸鎴戜滑鎯宠鐨勩€備慨鏀归厤缃甽erna.json锛屽皢version鏀逛负independent{"version":"independent","workspaces":true,"npmClient":"yarn"}鍐嶆鎵цlernapublish锛屼細鍙戠幇@bobocode-todos/utilspackageyoujustneedtoupdate浼氭彁绀恒€傛煡鐪媙pm锛屼細鍙戠幇鐗堟湰宸茬粡鏇存柊锛屼粨搴撲篃浼氱浉搴旀墦涓妕ag銆?.0.2lerna鍙戝竷鏇存柊鏃ュ織CHANGELOG鏇存柊鏃ュ織鏄」鐩紑鍙戣繃绋嬩腑闈炲父閲嶈鐨勪竴鐜€傛柟渚垮洟闃熶唬鐮佺淮鎶ゅ湪鍚岀洰褰曟墽琛寉arnaddcommitizencz-conventional-changelog-Dpackage.json娣诲姞閰嶇疆濡備笅{"na鎴戔€濓細鈥渞oot鈥濓紝鈥減rivate鈥濓細true锛屸€渄evDependencies鈥濓細{鈥渃ommitizen鈥濓細鈥淾4.2.4鈥濓紝鈥渃z-conventional-changelog鈥濓細鈥淾3.3.0鈥濓紝鈥渓erna鈥濓細鈥淾4.0.0"},"packages":["packages/*"],"scripts":{"install":"lernabootstrap","commit":"git-cz","clean":"rimrafnode_modules&&lernaclean-y"},"config":{"commitizen":{"path":"cz-conventional-changelog"}}}鎵цgitadd銆傜劧鍚庢墽琛寉arncommit锛屾彃浠剁敓鏁堜絾鏄垜浠墽琛実itcommit-m"xxx"鎴戜滑鍙戠幇gitcommit鐨刪ooks娌℃湁琚嫤鎴紝杩樻槸鍙互闅忎究鎻愪氦锛岃繖鏃跺€欓渶瑕佸畨瑁卙usky鍜宑ommitlint鏉ユ嫤鎴鑼冩彁浜arnadd@commitlint/cli@commitlint/config-conventionalhusky-D鏂板缓commitlint.config.js杈撳叆module.exports={extends:["@commitlint/config-conventional"]}鍦╬ackage.json涓坊鍔犲懡浠?prepare":"huskyinstall"鎵цnpmrunprepare鍙互鐪嬪埌椤圭洰鐢熸垚浜嗕竴涓?husky鏂囦欢澶癸紝鎴戜滑鍙互鍒涘缓涓€涓嫤鎴猚ommit鐨勮剼鏈琻pxhuskyadd"npx--no-installcommitlint--edit"$1"".husky鐢熸垚鐨勬枃浠跺すcommit-msg#!/usr/bin/envsh."$(dirname--"$0")/_/husky.sh"npx--no-installcommitlint--edit"$1"鎵ц鍐嶆鍙戠幇鎻愪氦琚嫤鎴紝璇佹槑閰嶇疆鎴愬姛锛宭erna閰嶇疆鍦╨erna.json涓敓鎴怌HANGELOG锛岄厤缃涓媨"version":"independent","workspaces":true,"npmClient":鈥測arn鈥濓紝鈥渃ommand鈥濓細{鈥渧ersion鈥濓細{鈥渕essage鈥濓細鈥渃hore锛坮elease锛夛細鍙戝竷%s鈥潁锛屸€減ublish鈥濓細{鈥渃onventionalCommits鈥濓細true}}锛屸€渋gnoreChanges鈥濓細[鈥?*/__fixtures__/**","**/__tests__/**","**/*.md"]}閫氳繃鎵цlernapublish--conventional-commits锛屽彲浠ュ彂甯僀HANGELOG鐨勭増鏈拰鏁堟灉銆傞」鐩殑md鏂囦欢濡備笅鎰熻阿鎮ㄩ槄璇诲埌杩欓噷锛屽笇鏈涙湰鏂囧鎮ㄦ湁鎵€甯姪甯姪锛屽笇鏈涘ぇ瀹朵笉瑕佸悵鍟偍鐨勫ソ璇勩€傚鏋滃ぇ瀹舵湁浠€涔堥棶棰樻垨鑰呭缓璁紝娆㈣繋鍦ㄨ瘎璁哄尯鐣欒█锛屽ぇ瀹朵竴璧蜂氦娴佽璁猴紝鍏卞悓杩涙锛侌煇?/p>
