Comments (22)
@ZengTianShengZ 命令行直接输 export
from blog.
$ git commit -a -m "core-bugfix: the xxx problem had fixed, Close #1"
这里的 commit 中的 tag 似乎笔误写倒了
from blog.
@oMaten commit 中的 message 不需要包含 tag,label 的内容即 tag 所 map 的内容最终在 pr 阶段选择 所对应的 label 来生效
from blog.
@pigcan 好的谢谢~
from blog.
正在用lerna做组件库,及时雨啊。。
from blog.
commit message 不用 angular style 了,还真有点不习惯了。
from blog.
汇总一个仓库时候,会有提交日志混在同一分支线的情况。如果分多个 repos,每个 repos 的分支线都仅仅表示当前模块相关的,请问这样的问题,有什么好避免的想法?
from blog.
汇总一个仓库,前提是适合放在一起。
前提成立的情况下,还行日志清晰,这个就和自身 git commit message 相关了。可以参看我另外一篇文章,适合一个给自己项目的 adaptor 就可以了。
from blog.
放到 packages 里面的每一个 mudule,别人怎么使用呢?
比如原来multiRepo的时候,babel,babel-core 和 babel-dore 是单独的repo,我使用的时候是:npm install babel babel-core babel-dore 来进行安装使用。
现在把babel-core和babel-dore都放在babel的packages目录下作为子模块了,安装使用方式还是一样的吗?
from blog.
@kybetter 一样的
from blog.
谢谢,
如果是一样的方式,其中的逻辑我有点不太明白,想请教一下作者,这里面是什么样的机制?
如果想要在自己的本地仓库或者是私有仓库里面使用,要做哪些配置呢?还是只有npm支持这种机制?
from blog.
@kybetter 不管是 multiRepo 还是 monoRepo 包本质上还是独立的,只是 monoRepo 中会在 bootstrap 时把这些子包 link 起来。
不需要额外配置什么,跟着我的流程走就可以了。
from blog.
@pigcan
据我所知,不管是 workspace 还是 link 的方式,也仅仅在开发的时候有用,bootstrap 的时候你也看到了,它会在每个模块下进行依赖安装和 link。
但是这跟我们 build 一个项目没有多大关系啊。build 完以后成啥样了?我现在脑子里是一团糟,绕不出来。
from blog.
@kybetter 其实我不太理解你的问题
但还是尝试回答下:
bootstrap 时就是把你的依赖给 link 起来,即如果一个 monorepo 中有模块 a,b,c,其中 c 依赖 a 和 b,link 的作用是,a 和 b 更改后并不需要被发布, c 可以随时用最新的 a 和 b。
但是 build,我不清楚这里的 build 的含义是什么,有两种解释
- build 指代码模块 transform
如果作为 babel transform 的话,那么就是因为我们正常情况下引用模块是用的 transform 完的(通常在 lib 下),而本地则是源码,那么就需要单独跑一个 watch 实时把源码文件 src 编译到 lib,但是这种情况下也会出现一个问题即如果我们调试 c ,却发现 a 中有报错,但是 a 是被编译后的代码,这并不利于调试,当然也有办法解决,记得我在一个脚手架中有说明,其中就是借鉴了 cssnano 的设计方式。
- build 指项目构建
如果指的是项目构建(构建到 web 或者 electron 等),那么你在采用 monoRepo 时就是混用了项目和模块,建议分开,项目即项目,模块即模块;当然一定要合在一起也可以,那么项目构建应该和 monoRepo 的流程没啥关系。这个时候的 build 更多意思是构建一份可在目标容器执行的代码。
from blog.
@pigcan 非常感谢,通过学习我知道 monoRepo 和它的管理方式了,我之前提的问题可能是把 multiRepo 的概念混合进来了,所以造成了理解偏差。
from blog.
请问下,lerna下项目和模块怎么管理呢,是把项目和模块放在lerna下座位不同的package吗,我这样理解对吗。
from blog.
@qq13836848 en
from blog.
感谢
from blog.
请教个问题:如何发布组件库到git,而不是npm仓库?
前提描述
公司只有git
仓库可用。
我使用lerna开发组件库,仓库名为my-component
。
lerna.json
配置如下:
{
"packages": [
"packages/*"
],
"useWorkspaces": true,
"npmClient": "yarn",
"version": "0.0.1",
"publishConfig": {
"directory": "dist"
}
}
根目录的package.json
配置中增加:
"private": true,
"workspaces": [
"packages/**"
]
packages
中每个组件(项目)的package.json
增加:
"private": true
问题描述:
lerna publish
命令可以设置发布组件打包后的dist
到npm
或者私人搭建的npm
仓库。但是公司代码是不可能发布到npm
的,而且也没有搭建私人npm
仓库。这就造成我的业务代码也只能放在packages
中开发,这样才能import
我开发的组件。
疑问?
能否通过lerna publish
发布到本地,我把这些文件(只有打包后的dist文件)上传到公司git
,再通过yarn add xxxx/my-component-release.git
下载到对应的业务代码项目中。主要就是想通过yarn add xxxx/my-component-release.git
来添加私有依赖包
我现在的解决方案
通过git subtree
拉取my-component
,然后根目录的package.json
配置:
"private": true,
"workspaces": [
"my-component/**"
]
这样我就可以在业务项目中使用自己开发的组件库了。
from blog.
lerna publish
可能有默认的行为(比如打 tag,发包等),但是这些行为可以通过配置项去除。
如果你想要建立在现有工作流方式上做,建议自己写发布脚本,但是在发布脚本内,可以调用 lerna 来管理流程,但是最终比如到发布环节,直接走你自己的流程就好了。
from blog.
step 3:
$ export GITHUB_AUTH="..."
这步骤啥意思呢,我已经拿到了github 的 token,哪里配置 export
from blog.
在执行node_modules/.bin/lerna-changelog的时候报错Could not infer "repo" from the "package.json" file.,但是我配置了"repo": "AlenOne/lerna"
from blog.
Related Issues (20)
- 如何变更一个非相关文件但引发 webpack 重新构建 HOT 1
- 在 es6 中 sinon 的正确打开方式 HOT 6
- 基于 webpack 的持久化缓存方案 HOT 11
- 看 Sean Thomas Larkin 谈 webpack 插件机制 HOT 1
- 看 Sean Larkin & Tobias Koppers 谈 webpack3 -> webpack4
- 这是一个长期招聘贴 HOT 2
- 用了啥 HOT 8
- An emoji guide for your commit messages HOT 2
- 用工具思路来规范化 git commit message HOT 12
- lerna workflow HOT 13
- 2019 计划 HOT 6
- CodeSandbox Review HOT 2
- 支付宝小程序构建重构我的一些个人思考 HOT 2
- 我关注的 Youtubers
- codesandbox - sandpack 、systemjs @0.21.x @3.x 、JSPM 2.0 、@pika/web 带来的一些思考以及借鉴意义 HOT 4
- D2 分享 - 基于浏览器的实时构建探索之路
- 吃一堑长一智系列:less HOT 1
- 吃一堑长一智系列:babel 之 semver
- 吃一堑长一智系列:你知道 HTML 的默认背景色是什么吗 HOT 1
- 吃一堑长一智系列: 99% 开发者没弄明白的 babel 知识 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blog.