使用lerna搭建腳手架項目


詳細實現方式以及文件下載請前往 https://www.passerma.com/article/74

一、初始化項目

1.創建腳手架文件夾

執行  npm init -y  初始化項目

2.全局安裝lerna

使用  npm i lerna -g  全局安裝lerna

3.初始化lerna項目

使用  lerna init  初始化項目

這步需要裝有 git 才可以執行,初始化完成后生成lerna.json以及packages文件夾

4.新建.gitignore文件

將一些無需上傳的文件忽略

二、創建packages

1.創建腳手架主文件

使用

lerna create core

創建腳手架主文件

其中各選項意義如下

package name 項目名 不能和已有npm包重名,我們這里使用@orgName/npmName,是指通過建立orgName組織方式發布npm包

version             版本號 起始1.0.0就ok

description      描述     

keywords        關鍵詞

homepage       文件目錄,可不填

entry point       主入口,由於我們這里是腳手架主文件,無需配置

                         但是之后創建模塊的時候需要填寫主文件入口,之后會演示

git repository   git倉庫,可不填

然后回車即可創建成功

2.創建腳手架工具包

使用

lerna create utils

創建腳手架工具包

創建過程如上

三、lerna使用方法

1.安裝依賴包

lerna add <package>[@version] [--dev] [--exact] [--peer]

我們這里以lodash為例,可以選擇只安裝到utils包里面,輸入  lerna add lodash packages/utils  

如果需要安裝到所有包里,直接不指定包名即可  lerna add lodash  

2.刪除依賴包

有時候我們需要刪除依賴包,則使用  lerna clean 即可

注意:刪除后如果需要再重新添加相同依賴包,需要將對應包下面的package.json里的dependencies里的依賴包名刪除

lerna bootstrap

 

3.重新安裝依賴

lerna bootstrap

這樣會幫我們安裝package.json里的dependencies依賴項

4.鏈接依賴

lerna link

主要是將本地包進行相互引用

比如我們需要在core里引入utils包,則可以現在core包的package.json的dependencies里添加utils的依賴

"dependencies": {    "@passerma-lerna-cli-test/utils":"^1.0.0" }

然后使用  lerna link  即可

然后我們可以看到core包里多了個node_modules文件夾,里面的@passerma-lerna-cli-test/utils軟鏈接到了本地的utils包

5.執行shell腳步

lerna exec -- <command> [..args] # runs the command in all packages

該命令運行的目錄為 packages目錄里的每個包

默認是所有包都執行,比如可以在每個包里新建一個test文件夾

結果如下

也可以指定某個包,使用

lerna exec --scope @passerma-lerna-cli-test/utils -- rm -rf test

注意輸入的為package.json里的包名

結果如下,只刪除了utils下的test目錄

6.執行npm腳本

$ lernarun <script> -- [..args] # runs npmrun my-scriptin all packages that have it $ lernarun test $ lernarun build

四、發布腳手架

1.注意事項

在發布前,我們需要將代碼commit到git倉庫上,可以選擇任意一款遠程倉庫

2.查看變更包,哪些包將會發布

lerna changed

可見,我們新創建的兩個包都會發布

3.查看變更代碼

$ lernadiff [package]$ lernadiff# diff a specific package$ lernadiff package-name

修改代碼,再使用命令即可查看diff信息

4.變更版本號

lernaversion 1.0.1# explicit lernaversionpatch# semver keyword lernaversion# select from prompt(s)

5.發布

lerna publish# publish packages that have changed since the last release lerna publishfrom-git# explicitly publish packages tagged in the current commit lerna publishfrom-package# explicitly publish packages where the latest version is not present in the registry

注意,如果是公共npm包,需要在package.json加上

"publishConfig": {    "access":"public" }

發布前需要先登錄npm,使用  npm adduser  

注意:同時要先在npm官網創建組織,及@符號后面/前面的組織名

運行發布,需要選擇版本號,如下

6.創建腳手架

在core下新建bin文件夾

在bin里新建index.js文件

#! /usr/bin/env node console.log('這是一個腳手架')

然后配置命令,在core里的package.json,添加

"bin": { "passerma-cli-test-lerna": "bin/index.js" },

名字即為腳手架名字,值為腳手架入口文件位置

提交git倉庫,然后  lerna publish  

7.安裝腳手架

npm i cli-name -g 

然后使用輸入之前配置bin的命令名字

 

 

至此,腳手架框架的搭建及發布已完成,接下來就是編寫自己的腳手架了

詳細實現方式以及文件下載請前往 https://www.passerma.com/article/74


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM