zoukankan      html  css  js  c++  java
  • 使用npm workspace 管理npm 包

    从npm 7.0 开始已经支持workspace了(以前大家使用的比较多的是lerna 以及yarn。。。。)
    npm 的workspace 使用简单,而且将依赖统一放到了node_moduels 文件夹中,而且可以减少
    我们测试的npm link 问题,是值得尝试的

    参考使用

    • 初始npm 项目
     
    npm i  -y
    • 添加一个项目
    npm init -w ./packages/a

    简单代码

    module.exports = {
        name:"a",
        age:333
    }
    • 添加另外一个项目
    npm init -w ./packages/b

    简单代码

    module.exports = {
        name:"b",
        age:333
    }
    • 项目入口使用模块
      需要先安装下类似lerna 的bootstrap,yarn 的workspace 可以自动处理
    const a = require("a")
    console.log(a)
    • 项目结构
    ├── index.js
    ├── node_modules
    ├── a -> ../packages/a
    ├── b -> ../packages/b
    ├── package-lock.json
    ├── package.json
    └── packages
        ├── a
        └── b
    • 运行效果

    • 添加npm 引用

    到一个具体的workspace

    npm install shortid -w a 


    workspace 都添加模块

    npm install uuid  --workspaces

    • 运行命令
      功能上与给workspace添加包类似
     
    npm run test --workspaces  // 全部运行
    npm run test --workspace=a --workspace=b // 指定workspace
    npm run test --workspaces --if-present //异常处理

    说明

    目前来说npm 的workspace 是一个很不错的lerna 以及yarn 替换模式,还是很值得使用的,同时也包含了publish 时候版本提升的处理

    参考资料

    https://docs.npmjs.com/cli/v8/using-npm/workspaces
    https://docs.npmjs.com/cli/v8/commands/npm-publish

  • 相关阅读:
    二叉树的遍历
    深度优先遍历和广度优先遍历
    N的阶乘末尾有多少个0
    框架产生的历史
    Ansible--初始ansible
    日积跬步05
    日积跬步04
    日积跬步03
    日积跬步02
    日积跬步01
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/15690861.html
Copyright © 2011-2022 走看看