V0.1

文件目录

  1. .
  2. |_ node_modules
  3. |_ dist
  4. |_ libs // 依赖文件夹
  5. |_ antd // 新版组件库
  6. |_src // 根目录的源文件
  7. |_lib // 包含库项目的逻辑和数据。像应用项目一样,库项目也可以包含组件、服务、模块、指令和管道。
  8. |_ component-name // 依赖与 ng-zorro 的组件或者自定义组件
  9. |- component-name.component.html
  10. |- component-name.component.scss
  11. |- component-name.component.ts
  12. |_ directives //指令文件夹
  13. |_ pipes // 管道文件夹
  14. |- antd.module.ts //
  15. |- index.ts // 导出
  16. |- karma.conf.js
  17. |- ng-package.json
  18. |- package.json
  19. |- README.md
  20. |- test.ts
  21. |- tsconfig.lib.json
  22. |- tsconfig.lib.prod.json
  23. |- tsconfig.spec.json
  24. |_ models // 组件的公用 interface 层面
  25. |_ component-name
  26. |- component-name.ts
  27. |- index.ts
  28. |- index.ts
  29. |_ utils // 公用的函数,函数式写法
  30. |- isFunction.ts
  31. |_ index.ts
  32. |_styles //库项目的样式
  33. |_assets // 静态文件

通用规则

文件夹,文件名:

  • 采用中横线命名
    • component-name.component.ts
  • 文件内输出对外的命令
    • MdXxxxComponent
    • MdXxxxDirective
    • MdXxxxService
    • MdXxxxModule
    • MdXxxxPipe
    • Selector: md-component-name组件父级文件夹实现:
      • 单个组件是一个 module
      • 包含:index.ts、public-api.ts和 package.json ,用于组件单独引用
      • 组件分为基础组件和复合组件;
      • 只包含实现的部分,其他归于model
      • 组件附属 service
      • 包含了 directives,pipes
      • 文件夹正常命名
    • utils:
      • 函数式
    • Model:
      • 意义:更有一个公共的概念;方便导出去,作为公共的 interface;没有其他大问题都用公共的,如果有些功能只有 antd 有,继承公用的实现 antd,怎么判断只有 antd 有呢?两个框架的组件提供的功能,有差异的时候,没有对比,怎么可能知道;
      • 包含:
        • interface.ts
        • type.ts
          • type
          • enum
          • constant
          • option.ts
            • interface 的实现;不会有 class
        • interface:
          • 基础和通用 interface

疑问:

  1. option 存疑;