vianvio / FE-Companions

山虽高,我心已决要攀登, 路再难,绊不住我的脚跟; 因为我看到生命之路就在这里。 -- 《天路历程》
447 stars 34 forks source link

20200306 - 郭军伟 #45

Open vianvio opened 4 years ago

vianvio commented 4 years ago

问题列表:

  1. 经过多个类似项目的积累,总结一下技术方案上的收获,有哪些技术产品被沉淀下来了?
  2. 如果没有技术产品产出,那思考一下如何固化一个自己独有的工程脚手架,它需要包含哪些能力?
MrGuojunwei commented 4 years ago

Q1: 回答这个问题,想了挺久,不知道怎么回答,因为工作几年来,自己确实没有沉淀下来什么东西,唯一有提升的,算是bug的快速定位能力和对框架api的熟练,不过此刻,也给自己明确了方向,去思考、总结、抽象、沉淀下属于自己的可持久化的技术产品。

Q2:如何固话一个脚手架,我认为首先要自定义一个初始化的项目,首先使用npm init初始化package.json文件,创建项目文件夹,包含config(保存全局的配置,包括不同环境的ip,开发服务器代理的配置),src(存放项目代码的主要文件夹)public(存放index.html 和 ico文件).babelrc文件(存放babel-loader的配置选项).gitignore(保存代码提交时忽略的文件夹或文件)webpack.config.js(打包环境的配置文件);在src目录下,创建components,用于保存项目开发的自定义的组件,api用于定义全局的api接口,helpers用于定义接口请求方法,assets用于保存字体文件和图片文件等静态资源,layout目录,保存项目的入口页面代码,一般包括登陆页面和系统页面两个组件,pages目录保存系统的主要功能页面,store保存系统全局状态,router保存系统菜单的路由配置,utils保存系统中经常会用到的工具方法文件。 这个模板系统主要包含webpack打包配置优化(添加可以提升打包速度和优化打包体积的优化配置)、登录组件、菜单组件、路由配置模板, 403页面组件;并内置一些基于antd组件二次开发的常用业务组件库,内置组件库计划单独维护,在项目中使用npm包的形式使用,另外需要内置一些业务中常用的工具方法,这些方法也将剥离出具体业务,单独发包维护。 另外需要开发一个脚手架工具,可以像使用vue-cli init webpack projectName一样,使用命令,将自定义的项目模板下载到本地。这个命令可以传一个参数 用来区分使用ts开发项目,还是使用jsx开发项目,根据不同的参数,下载不同的项目模板。

vianvio commented 4 years ago

Q2的思路挺好,可以试着做一个类似的脚手架仓库出来,一点点积累起来,自然就有技术沉淀了