在monorepo項目中,隨著子模塊增多, 每個子項目都需要配置各自的package.json,并且大同小異,為了進一步提高配置效率,引入了scripty,自己寫腳本,直接就可以用哦
1、安裝
npm install scripty --save-dev
2、使用
首先在根目錄創建文件夾scripts/
分為兩類「package 級別」與「workspace 級別」,并且分別放在兩個文件夾內。這樣做的好處在于,我們既可以在項目根目錄執行全局腳本,也可以針對單個項目執行特定的腳本。
如下圖所示
根目錄的package.json改成如下
"scripts": {"prepare": "scripty","preinstall": "scripty","clean": "scripty","task:build": "scripty","task:dev": "scripty","task:lint": "scripty","task:lintfix": "scripty"},"scripty": {"path": "./scripts/package"},
以task:dev為例,對應的就是./scripts/package/task/dev.sh?
子模塊目錄
"scripts": {"precommit": "scripty","start": "scripty","build": "scripty","eslint": "scripty","eslint:fix": "scripty","stylelint": "scripty","stylelint:fix": "scripty","lint": "scripty","lintfix": "scripty"},"scripty": {"path": "../../scripts/workspaces"},
使用 chmod -R u+x scripts 命令使所有的 shell 腳本具備可執行權限, 否則會導致執行失敗!!!!?
?