-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用Angular-cli多工程配合做gitlab私有仓库 #21
Comments
npm run publish:lib是啥意思呀?请问 |
是 npm scripts,它要做的事情就是:
|
|
给你举几个例子: angular 官方的表单模块:
我当时也是参考这个命名的。 |
非常感谢,已经通了! |
最近一直研究 Angular-cli 多工程的特性,传送门,随着公司项目越来越复杂度增加,开始考虑模块化拆分问题,这就涉及很多工程配置,模块越多配置越麻烦。因为公司代码都在公司内部搭建的
gitlab
里面,虽然现在github
有私有项目,但是私人对公司项目不是很有好,原因你懂的。废话就不多说了,赶紧上车吧~~~
准备
gitlab
环境你项目的地址,登录进去创建项目。需要创建2个项目,一个是源码代码项目,一个发布编译后项目。
举个栗子:
我现在要造个轮子,需要创建一个UI组件库,起个简单的名字就叫
simple-ui
。那就我在
gitlab
里面创建一个工程,名字叫simple-ui
。在创建一个编译后的工程,这个是重点,名字叫
simple-ui-builds
。这个是你项目需要引用的地址获取 token
gitlab
gitlab.com/jiayi/simple-ui-builds/settings/repository
Deploy Tokens
, 点击Expand
。注意:我画红色框的地方需要注意,这个是很重要的认证,那个小本本把它记录下来,因为你一关闭这个页面或者刷新,这个玩意就没有了。
克隆项目
有些一般克隆项目都是
git clone http://gitlab.com/jiayi/simple-ui.git
,这样没什么毛病也是正确,但是有个问题是如果你没有设置全局邮箱和用户名,就会让你每次pull
和push
操作都提示你输入用户名和密码。这样很烦。那就这样来克隆地址:
git clone http://${username}:${password}@gitlab.com/jiayi/simple-ui.git
。到这里,我们的工作区里面应该有2个git目录了
开发项目
angular
项目,如果你当前在gitlab
文件夹里simple-ui
文件夹,src
当我们simple-ui
的文档项目界面,也算是测试界面,因为生成的library
,就相当于一个js文件,你压根不知道它是样子的。然后开始尽情玩耍你的UI组件库。
这样就好自定义发布到
dist/simple-ui
,simple-ui-builds
里面。思考一下我们需要什么哪些操作?
simple-ui
提交记录 生成CHANGELOG.md
文件dist/simple-ui
文件拷贝到simple-ui-builds
里面package.json
里的version
+1,这里需要做个配置,不然会一直累加git add .
git commit -m "release: cut the vxx.xx.xx release"
git push --follow-tags origin master
扩展功能:需不需要去通知使用者更新。
这里需要写脚本来支持,我们先放在一边,后面慢慢来说明。
项目使用
我们正常使用
npm
安装npm
上面的包,都是没什么问题,这个比较特殊。我们需要这样来安装:
Use this username as a login.
绿色提示文字输入框里面的内容。Use this token as a password. Make sure you save it - you won't be able to access it again.
红色提示框里面的内容。这样就把你的依赖安装的你的项目里面,就可以和其他npm包一样的使用了。
自动发布
...待续
The text was updated successfully, but these errors were encountered: