脚手架地址:www.npmjs.com/package/rum...
一、目标功能
一期:
- 支持antd
- 请求代理的样例
- dispatch更新数据和请求结合在一起,实现页面渲染和数据以及请求分离
- 错误捕获,实现错误时,只对局部有影响
- 自动生成changelog,并更新版本
- 脚本命令执行,拉取umi模版,生成新的项目,并安装完依赖
二期(非破坏性):
- 本地启动增加自动打开浏览器
- 支持Next.js、umi、dumi两种框架模版
- 脚本名称生成模块
- 自带一些公用的组件,table+pagination
- ts dumi增加全局前缀变量(js,less) 三期(破坏性):
- lerna+monorepo,在创建项目时,可以选择,或者在创建项目之后,一键转换。(微前端)
四期(破坏性):
二、一期功能实现
1、支持antd
2、实现脚手架
(1)核心依赖
- commander 命令行工具
- download-git-repo git仓库代码下载
- chalk 命令行输出样式美化
- inquirer 命令行交互
- ora 命令行加载中效果
- cross-spawn 执行依赖安装命令
(2)实现过程
a、创建bin/index.js文件
b、package.json的配置
json
"bin": {
// 执行runt命令时,执行的文件
"runt": "./bin/index"
},
// 要上传到npm上的包文件
"files": ["bin", "dist/**/*.js"],
三、二期功能实现
四、三期功能实现
问题: 1、npm login Enter one-time password from your authenticator app npm强制开启2FA验证了, npm页面的右上角头像,点击Account, 点击Modify 2FA, 我选择了Authenticator app,会出现一个二维码,手机下载Microsoft Authenticator,扫描改二维码,会出现一个验证码,将该验证码添加到npm页面二维码下方的输入框中,保存。
在本地使用npm login时,出现上方提示时,也是取Microsoft Authenticator中的二维码输入即可。
2、执行release-it,一直超时
解决:一直试。
3、ERROR User [用户名] is not a collaborator for runt. 这是因为package.json中没有写private为false。
4、
解决:
-
首先测试一下Git是否能正常访问ssh.github.com。
ssh -T -p 443 git@ssh.github.com
如果出现以下提示,则说明成功:Hi aftermath0703! You've successfully authenticated, but GitHub does not provide shell access.
-
sudo vim ~/.ssh/config
-
加入一下信息: Host github.com Hostname ssh.github.com Port 443 User git
-
测试Git是否能成功连接了
ssh -T git@github.com
如果出现Hi aftermath0703! You've successfully authenticated, but GitHub does not provide shell access.
,说明成功。
5、复制的.gitignore 不生效
sql
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
6、当没有单独使用npm publish发布过的包,使用release-it是不会有publish这一步的,即使配置了。
参考资料: 1、