真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用lerna進行多包(package)管理

為什么要用lerna

將大型代碼倉庫分割成多個獨立版本化的 軟件包(package)對于代碼共享來說非常有用。但是,如果某些更改 跨越了多個代碼倉庫的話將變得很 麻煩 并且難以跟蹤,并且, 跨越多個代碼倉庫的測試將迅速變得非常復雜。

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站建設、成都做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務鹽湖,十余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108

為了解決這些(以及許多其它)問題,某些項目會將 代碼倉庫分割成多個軟件包(package),并將每個軟件包存放到獨立的代碼倉庫中。但是,例如 Babel、 React、Angular、Ember、Meteor、Jest 等項目以及許多其他項目則是在 一個代碼倉庫中包含了多個軟件包(package)并進行開發(fā)。

Lerna 是一種工具,針對 使用 git 和 npm 管理多軟件包代碼倉庫的工作流程進行優(yōu)化

npm初始化

新建文件夾spring-breeze,在集成終端輸入
npm init -y
根目錄會生成package.json:

{
  "name": "spring-breeze",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

安裝lerna

全局安裝lerna
執(zhí)行:npm i lerna -g
安裝完成后執(zhí)行:lerna init
執(zhí)行完成后后出現(xiàn)這樣的目錄結(jié)構(gòu)

- packages(目錄)
- lerna.json(配置文件)
- package.json(工程描述文件)

初始化兩個package

默認情況下,package是放在packages目錄下的.創(chuàng)建包可以使用命令lerna create [loc]
lerna create core packages/core
lerna create core packages/tools

將packages/core/lib/core.js改為:

'use strict';
console.log("我是core包~~")

將packages/tools/lib/tools.js改為:

'use strict';
console.log("我是tools包~~")

此時目錄結(jié)構(gòu)為

-- packages(目錄)
  -- core
    ...
    -- lib
      -- core.js
    -- package.json 
    -- README.md
  - tools
    ...
    -- lib
      -- tools.js 
    -- package.json 
    -- README.md
- lerna.json(配置文件)
- package.json(工程描述文件)
...

修改包名

為了防止重名,包名一般改為@組織/包,如現(xiàn)在這個項目core應該改為:@spring-breeze/core;tools改為:@spring-breeze/tools

例如core模塊:

  • packages/core/package.json:
{
  "name": "@spring-breeze/core",
  "version": "0.0.1",
  "description": "> TODO: description",
  "author": "******",
  "homepage": "",
  "license": "ISC",
  "main": "lib/core.js",
  "directories": {
    "lib": "lib",
    "test": "__tests__"
  },
  "files": [
    "lib"
  ],
  "repository": {
    "type": "git",
    "url": "******"
  },
  "scripts": {
    "test": "echo \"Error: run tests from root\" && exit 1"
  }
}

安裝第三方包lerna add

  • 添加公共依賴

    在根目錄下執(zhí)行(在哪個目錄執(zhí)行都一樣):lerna add lodash
    此時會發(fā)現(xiàn)core和tools都被安裝了lodash

  • 添加單獨依賴

    lerna add jquery --scope=core
    core就會被安裝了jquery

刪除依賴lerna clean

執(zhí)行l(wèi)erna clean會刪除所有包中的node_modules

安裝所有依賴lerna bootstrap

執(zhí)行l(wèi)erna bootstrap會重新安裝所有依賴

測試本地包

如果本地開發(fā)的兩個包有所關(guān)聯(lián),用lerna進行調(diào)試非常的簡單,只需要將需要用的本地包版本號寫入依賴執(zhí)行:lerna link就可以了;例如在core模塊使用tools模塊

  • package添加依賴:"@spring-breeze/tools": "^0.0.1"
{
  "name": "@spring-breeze/core",
  "version": "0.0.1",
  "description": "> TODO: description",
  "author": "******",
  "homepage": "",
  "license": "ISC",
  "main": "lib/core.js",
  "directories": {
    "lib": "lib",
    "test": "__tests__"
  },
  "files": [
    "lib"
  ],
  "repository": {
    "type": "git",
    "url": "******"
  },
  "dependencies": {
    "@spring-breeze/tools": "^0.0.1"
  },
  "scripts": {
    "test": "echo \"Error: run tests from root\" && exit 1"
  }
}

添加完成之后執(zhí)行l(wèi)erna link

  • core中使用:packages/core/lib/core.js
'use strict';
require("@spring-breeze/tools")

node執(zhí)行core.js就會發(fā)現(xiàn)控制臺打印:我是tools包~~。這樣就可以進行本地的調(diào)試了

發(fā)布前準備

調(diào)試完成就可以發(fā)布了,發(fā)布流程如下:

  • 注冊npm賬戶
  • 新建組織spring-breeze(根據(jù)自己項目而定)
  • 執(zhí)行npm login
  • 分別在core和utils下的package.json中配置
 "publishConfig": {
    "access": "public"
  }
  • 新建gitignore
*node_modules
  • 新建git倉庫,將項目git remote add "你的git倉庫",并且提交項目至git倉庫
git remote add https://gitee.com/geeksdidi/spring-breeze.git  
git add .   
git commit -m "初始化"
git push -u origin master
  • 新建LICENSE.md(可以是空文件)
  • 修改一個文件執(zhí)行 lerna publish

注意:每次發(fā)布新版本之前都有將代碼提交到git上

查看已發(fā)布的package

登陸npm官網(wǎng) 即可看到自己發(fā)布的package


分享標題:如何使用lerna進行多包(package)管理
瀏覽地址:http://weahome.cn/article/dsojpdg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部