Yarn + Lerna + Rollup + 示例项目

Yarn

通过使用 Yarn 的工作区功能,让 Yarn 根据就依赖关系帮助你分析所有子项目的公共依赖,让所有的子项目的公共依赖只会被下载和安装一次。

Lerna

通过 Lerna 可以将一系列相互耦合比较大、又相互独立的库进行管理,它解决各个库之间修改混乱、难以跟踪的问题,优化开发工作流。同时,Yarn 会帮你 link 好项目之间的依赖关系,你只需要在各个项目的 package.json 中配置好 dependencies 即可。

Rollup

使用 rollup 实现通过简单的配置,生成类库的 esm、lib 版本。

示例项目

通过示例项目展示类库的功能、使用方式。

至此,我们已经把 依赖安装 -> 库开发 -> 库发布 -> 功能介绍的整个类库的开发流程串了起来!

项目结构大致如下:

├─packages
│ ├─core
│ ├─package1
│ ├─package2
│ ├─package3
│ ├─playgorund(private)
│ └─shared
├─lerna.json
└─package.json

关于示例项目(react)

我们希望在开发的时候能时时的验证类库的各个功能,此时一个类库示例项目必不可少少。示例项目的难点在于如何引用类库项目、以及如何在类库代码更改后热更新。
首先,lerna 在项目进行 bootstrap 后会帮你把各项目的依赖 link 好;
其次,热更新,可以通过使用 webpack 的 alias 功能,将 所引用的类库指向类库的 src 本部,这样更改类库源码的时候就会热更新。

使用 cra 创建的示例项目

可使用 react-app-rewired + customize-cra 更改 webpack 配置,此时,如果 alias 超出 示例项目的 src 目录,会报错 outside of src directory 错误;此时你需要 react-app-rewire-alias 来添加 alias。使用 Yarn 工作区功能可以避免报 invalid hook call 的问题

最后,你也可以不是使用示例项目,通过使用 bookstores 的方式也是一个不错的选择。

引用

[1] Yarn
[2] Lerna
[3] Rollup
[4] Webpack
[5] react-app-rewired
[6] customize-cra
[7] react-app-rewire-alias

前端类库开发最佳实践相关推荐

  1. web前端开发最佳实践_学习前端Web开发的最佳方法

    web前端开发最佳实践 为什么要进行网站开发? (Why web development?) Web development is a field that is not going anywhere ...

  2. Web前端开发最佳实践(8):还没有给CSS样式排序?其实你可以更专业一些

    前言 CSS样式排序是指按照一定的规则排列CSS样式属性的定义,排序并不会影响CSS样式的功能和性能,只是让代码看起来更加整洁.CSS代码的逻辑性并不强,一般的开发者写CSS样式也很随意,所以如果不借 ...

  3. 《Web前端开发最佳实践》——1.2 Web前端开发现状

    本节书摘来自华章计算机<Web前端开发最佳实践>一书中的第1章,第1.2节,作者:党 建 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.2 Web前端开发 ...

  4. 【Web前端开发最佳实践系列】前端代码推荐和建议

    一.常用的前端文件的组织结构: 1.js (放置JavaScript代码) lib(放置框架JavaScript文件) custom.js 2.css(放置CSS样式代码) lib(放置框架CSS文件 ...

  5. Web前端开发最佳实践(3):前端代码和资源的压缩与合并

    一般在网站发布时,会压缩前端HTML.CSS.JavaScript代码及用到的资源文件(主要是图片文件),目的是加快文件在网络中的传输,让网页更快的展现.当然,CDN分发.缓存等方式也是加快代码或资源 ...

  6. web前端开发最佳实践_Web开发人员和设计师的最佳黑色星期五优惠

    web前端开发最佳实践 As Black Friday 2016 is here, we thought that web developers and web designers should al ...

  7. 前端性能优化最佳实践(转)

    转载请注明: 转载自WEB前端开发(www.css119.com)-关注常见的WEB前端开发问题.最新的WEB前端开发技术(webApp开发.移动网站开发).最好的WEB前端开发工具和最全的WEB前端 ...

  8. GMTC 大前端时代前端监控的最佳实践

    摘要: 今天我分享的内容分成三个部分: 第一部分是"大前端时代前端监控新的变化", 讲述这些年来,前端监控一些新的视角以及最前沿的一些思考. 第二部分"前端监控的最佳实践 ...

  9. 前端代码标准最佳实践:CSS篇

    上一篇<前端代码标准最佳实践:javascript>发表后,大家讨论还是很热烈,从侧面体现了前端工程师对写标准的前端代码的重视程度很高.这些最佳标准实践并不是那个权威组织发布的,而是由大量 ...

最新文章

  1. Apache htpasswd命令
  2. 机器学习的第一个难点,是数据探索性分析
  3. JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别
  4. POJ2263 ZOJ 1952
  5. Spring boot -mongodb
  6. Java面对面向程序设计_语言与文化网课章节测试答案
  7. UVa10410 Tree Reconstruction(bfs+dfs确定二叉树)
  8. 160 - 3 Afkayas.2
  9. c语言编写一元二次方程
  10. mysql utf8存不了中文乱码_MySQL怎么存文本不乱码?
  11. 2019.01.01洛谷 P4725/P4726 多项式对数/指数函数(牛顿迭代)
  12. 不能使用sizeof计算的表达式
  13. 微观、宏观、精准 多视角估算数据库性能(选型、做预算不求人)
  14. NOIP2012 国王游戏(贪心)
  15. java日志篇(2)-JUL(java.util.logging)
  16. Python Keras ValueError: Layer sequential expects 1 input(s), but it received 2 input tensors. 解决方法
  17. png格式的icon使用方法
  18. Android单元测试 Instrumentation
  19. 新装的windows遇到命令行脚本无法执行
  20. 创建自己免费的论坛、博客网站

热门文章

  1. WPF入门第二篇 MVVM与Binding
  2. 【wpf】如果让Bingding 如何让后台数据强制更新界面
  3. vi 撤销上一步操作
  4. 76.0.3809.100版本的谷歌浏览器对应能用的chromedriver版本
  5. node.js基于微信小程序的外卖订餐系统 uniapp 小程序
  6. linux dpkg: 错误: 无法打开软件包的 info 文件 /var/lib/dpkg/available 以便读取: 没有那个文件或目录
  7. 电脑访问打印机连接的共享文件夹
  8. MBTI16型人格测试思维导图 | 找到自己的类型
  9. DirectX发展历程
  10. linux系统设置密钥登录