Docker+Cmd+Cli+Git之前端工程化紀要(二)自定義類package.json文件管理模組包
全新升級後的FE工作流為:使用FE命令包進行項目的初始化,其中包括項目初始化、拉取腳手架、私庫拉取模組包或後期擴展的CI/CD等與本公司工作流相關的操作。
出現的問題如下:
腳手架工具的包依賴資訊存放在根目錄的package.json中,若業務項目仍存放在package.json中,那麼後期再更新腳手架工具時,就會將業務包的依賴資訊覆蓋。因此就需要將業務的依賴資訊單獨存放。
由此配合私庫進行切源,就能滿足之前的工程化架構的需求。
應新的需求特地擼了個工具,後續也會持續優化與更新。
對此工具做以下幾點說明:
1. 此工具可以在初始化時自定義文件路徑與文件名稱,並以指定文件存放依賴包資訊。
2. 可以使用指定的pkg-copy進行init、install、uninstall等操作,安裝依賴同npm相同,均為node_modules.
3. 新安裝的依賴也會添加到指定的package.json文件中
Install
npm install --save-dev package-copy
Usage
use with Command Line
./node_modules/.bin/pkg-copy config json=./package-test.json
./node_modules/.bin/pkg-copy init
./node_modules/.bin/pkg-copy init json=./package-test.json
./node_modules/.bin/pkg-copy install
./node_modules/.bin/pkg-copy install -D vue-loader
./node_modules/.bin/pkg-copy uninstall --save [email protected] react
use with js
const PkgCopy = require('package-copy'); // 如果不初始化配置項,則默認在執行目錄下生成package-copy.json let pkg = new PkgCopy({ json: './package-test.json' }) pkg.exec('pkg-copy init') pkg.exec('pkg-copy install vue -S').then((msg) => {}) // use promise await pkg.exec('pkg-copy install vue -S') // use async/await