zoukankan      html  css  js  c++  java
  • lerna 常用命令

    lerna 介绍

    lerna 处理机构

    固定模式(fixed)

    所有包是统一的版本号,每次升级,所有包版本统一更新,不管这个包内容改变与否

    具体体现在,lerna 的配置文件 lerna.json 中永远会存在一个确定版本号:

    {
    "version": "0.0.1"
    }
    

    典型例子: babelvue

    独立模式(independent)

    每个包是单独的版本号,每次lerna 触发发布命令,每个包的版本都会单独变化

    具体体现在,lerna 的配置文件 lerna.json 中没有一个确定版本号,而是:

    {
    "version": "independent"
    }
    

    lerna 安装

    npm install lerna -g
    lerna -v
    

    lerna 初始化

    代码规范采用lerna提供的规范结构的话:

    # 默认固定模式
    lerna init 
    # 要采用独立模式的话
    lerna init -i
    # lerna init --independent
    

    生成的代码结构

    └── lerna/
       ├── packages/
       ├── lerna.json
       └── package.json
    

    如果代码已经存在,则只需要在项目下创建lerna.json并补充相关字段

    {
        "useWorkspaces": true, // 使用 workspaces 配置。此项为 true 的话,将使用 package.json 的 "workspaces",下面的 "packages" 字段将不生效
        "version": "0.1.0", // 所有包版本号,独立模式-"independent"
        "npmClient": "cnpm", // npm client,可设置为 cnpm、yarn 等
        "packages": [ // 包所在目录,可指定多个
            "packages/*"
        ],
        "command": { // lerna 命令相关配置
            "publish": { // 发布相关
                "ignoreChanges": [ // 指定文件或目录的变更,不触发 publish
                    ".gitignore",
                    "*.log",
                    "*.md"
                ]
            },
            "bootstrap": { // bootstrap 相关
                "ignore": "npm-*",  // 不受 bootstrap 影响的包
                "npmClientArgs": [ // bootstr 执行参数
                    "--no-package-lock"
                ]
            }
        }
    }
    

    lerna 相关命令

    lerna官方文档https://lerna.js.org/

    初始化

    创建一个新的lerna仓库或者将现有的仓库使用lerna管理

    lerna init # -i/--independent
    

    Publish

    发布包

    lerna publish
    

    Bootstrap

    把所有包安装到根node_modules

    lerna bootstrap
    

    Run

    运行每个包中的script命令

    lerna run <script> --[...args]
    

    Exe

    单独运行某个包下的script命令

    lerna exec -- <command> [...args]
    # example
    $ lerna exec -- rm -rf ./node_modules
    $ lerna exec -- protractor conf.js
    

    Add

    安装本地或者远程的包

    lerna add <package>[@version] [--dev] [--exact] [--peer]
    #--dev 将新包添加到devDependencies而不是dependencies.
    #--exact 添加具有确切版本(例如1.0.1)而不是默认^semver 范围(例如^1.0.1)的新包。
    #--peer 将新包添加到peerDependencies而不是dependencies.
    
    #将 module-1 包添加到 'prefix-' 前缀文件夹中的包中
    lerna add module-1 packages/prefix-*
    
    #将模块 1 安装到模块 2
    lerna add module-1 --scope=module-2
    
    #在 devDependencies 中将 module-1 安装到 module-2
    lerna add module-1 --scope=module-2 --dev
    
    #在 peerDependencies 中安装 module-1 到 module-2
    lerna add module-1 --scope=module-2 --peer
    
    #在除module-1之外的所有模块中安装module-1
    lerna add module-1
    
    #在所有模块中安装 babel-core 
    lerna add babel-core
    

    原文地址: https://kspf.xyz/archives/136

  • 相关阅读:
    mysql误删表,无备份
    感情启示录
    奸的好人之财色战场
    Word神器使用
    Maven工程的Web调试
    IntelIoT技术笔记Java/Eclipse
    IntelIoT技术笔记Maven
    Linux脚本(二)
    MINA
    360是神器
  • 原文地址:https://www.cnblogs.com/fengbaba/p/15135418.html
Copyright © 2011-2022 走看看