前端工程化 — 关于Cli项目工程结构

160 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情

CLI (@vue/cli) 是一个全局安装的 npm 包,提供了终端里的 vue 命令,我们可以通过 vue create 快速搭建一个新项目,

一个vue-cli项目的结构体系,帮助我们快速了解项目,同时可以在github搜索一些开源的项目来学习,有助于快速了解整个项目的体系

一、目录结构

以Vue项目为例,以下是常见的一种目录结构,实际中会根据不同的项目有所差别

├── node_modules
├── public
│   └── static
├── src
│   ├── App.vue
│   ├── mian.js
│   └── ...
├── index.js   
├── .eslintrc.js
├── ...

二、具体含义

  • 项目

    • node_modules

    • src

      • api :接口声明
      • assets :图片和公共组件css文件
      • components :公共组件库
      • layout :布局
      • router :项目路由相关的声明和配置
      • store :vuex状态管理的相关配置
      • utils :通用方法和校验
      • views :页面地址
      • App.vue :根组件app.vue
      • main.js :项目的入口文件:定义vue实例,引入根组件,进行挂载
    • plopfile.js可以根据一个模板文件批量生成文本或者代码,不再需要手动复制粘贴的脚手架工具,

    • README.md markdown文档,关于项目的信息以及安装启动等指引

    • postcss.config.js postcss插件配置文件

    • package-lock.json 记录当前状态下实际安装的各个npm package的具体来源和版本号,确保安装和兼容的依赖关系一致(在项目执行npm install就会生成)

    • package.json 文件的内容是一个JSON对象,里面包含了项目常见的配置,比如项目启动、版本、打包命令,依赖包的声明等等(在项目init的时候生成)

    • jest.config.js jest 测试框架的配置文件

    • Dockerfile 用来构建镜像的文件

    • babel.config.js babel配置文件,为了兼容低版本浏览器,将ES6转化成ES5

    • .gitignore 配置不需要添加到git版本管理中的文件,比如node_modules、编译器生成的配置文件等

    • .eslintrc.js 配置项目的 eslint 校验,统一代码风格

    • .env.production 生产环境

    • .env.development 开发环境

三、启动项目的过程

当我们在终端中输入 npm run xxxx运行项目时候,会执行package.json文件中scripts下的对应命令

因为在执行npm install后,声明的包都会下载到node_modules目录下,执行npm run dev的时候,就去node_modules/目录下寻找对应文件并执行