项目亮点+1-学习TDesign初始化组件

316 阅读2分钟

学习目标

主要学习两个命令

  • 新增组件: npm run init [组件名]
  • 删除组件:npm run init [组件名] del

了解TDesign 官网

腾讯开源的一套企业级设计体系,跟antDesign是一类东西,包含pc端、移动端、小程序,大厂出品,必属精品,有机会可以用起来。

学习任务

image.png

调试方法

打上断点,执行npm run init newFile开始调试

image.png 然后可以根据自己节奏按f11逐步调试

  1. 通过getToBeCreatedFiles,获取所有要创建的文件路径,模板文件

image.png

  1. 执行addComponent根据对应的模板和文件路径创建

image.png

后面没啥说的,就是通过fs模块操作文件的一些方法

总结

一些点记下来

  1. path和fs的一些操作
  • process.cwd() 方法返回 Node.js 进程的当前工作目录

image.png

  • process.argv 可以读取到输入的命令参数

  • path.resolve()命令

       - path.resolve()返回绝对路径d:\zhet\tdesign-vue
       - 参数不带 / ,path.resolve('a')返回绝对路径拼接后的d:\zhet\tdesign-vue\a
       - 参数带 / ,表示绝对路径,返回最后一个带 / 的绝对路径 path.resolve('/a'),返回 d:\a
       - path.resolve('a','b'),返回d:\zhet\tdesign-vue\a\b
       
    
  • fs.readFileSync('路径').toString()读取模板数据,

  • fs.write()将数据写入文件

  • fs.existsSync()判断文件是否存在

  • fs.rmdirSync()同步删除目录,目录下必须为空,fs.unlinkSync()删除文件

  1. lodash.template()创建预编译模板的方法
  2. 一个首字母转大写的方法
function getFirstLetterUpper(a) {
  return a[0].toUpperCase() + a.slice(1);
}
  1. String.match()检索返回一个字符串匹配正则表达式的结果
let str='sssssdfgerteryertwteryerwr'
//undefined
str.match(new RegExp('dfg'))
//['dfg', index: 5, input: 'sssssdfgerteryertwteryerwr', groups: undefined]0: "dfg"groups: undefinedindex: 5input: "sssssdfgerteryertwteryerwr"length: 1[[Prototype]]: Array(0)
str.match(new RegExp('dfg2'))
//null

  1. 学到了批量创建文件的方式,避免手动创建复制粘贴代码

  2. 非常nice,直接copy到项目,改吧改吧,面试的时候亮点+1(拿来吧你^-^)

  3. 浅层学习看输入,深层学习看输出。这次源码并不难,十来分钟就能看懂,不过写完笔记和看完的收获明显不一样,写笔记也花了更多时间,不管写的咋样,大家可以试着写一下,会有不一样的收获!