前端工程化 | vue3+ts+jsx+sass+eslint+prettier 配置化全流程

这篇具有很好参考价值的文章主要介绍了前端工程化 | vue3+ts+jsx+sass+eslint+prettier 配置化全流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

起因: 

前端开发是一个工程化的流程。 包括持续集成、持续部署。

我认为集成 的第一方面就是开发,在前端项目开发中,需要保证代码格式规范的统一、代码质量、提交的规划。而这些要求需要通过各种插件来保证规范化和流程化开发。 如何配置这些插件,这些插件各自的功能是什么? 尽管不知道这些也能进行开发,但是,一旦出现问题,就会出现两眼一抹黑的情况,而随着工作年限的增长,我们需要尽快对这些东西进行掌握。 这也行,我写这篇文章的原因。

一、创建项目

这里我们打包工具使用 vite 而不是webpack。 关于webpack和vite的差别可以参考:***。

我们通过 npm init vue npm init vue 命令来初始化一个新的vue 项目。这里我们不通过脚手架来创建项目。所以在选择时,jsx、ts、eslint、单测的选择都是no。

过程如下图所示:

前端工程化 | vue3+ts+jsx+sass+eslint+prettier 配置化全流程,前端工程化,前端

 这样,我们就创建了一个纯净的vue 项目。

为了方便后续改造,建议这里只保留一个 app.vue 文件。 其余的vue 文件都删掉。

二、引入插件

2.1 引入jsx

尽管vue为了开发的流畅,提供了template开发语法,但在实际开发中,还是会受限。 然而在某些使用场景下,我们真的需要用到 JavaScript 完全的编程能力。这时渲染函数就派上用场了。 而JSX 就是贴近渲染函数开发的一种形式。

我们可以通过 安装 @vitejs/plugin-vue-jsx 插件来进行jsx 开发。

因为这个插件是用来辅助开发的,所以最好将其安装在 devdependency 中
npm i @vitejs/plugin-vue-jsx -D

然后在 vite.config.js 中引入 插件,并将其添加至 plugins 中。 

// vite.config.js
import vueJsx from '@vitejs/plugin-vue-jsx'

export default {
  plugins: [
    vueJsx({
      // options are passed on to @vue/babel-plugin-jsx
    }),
  ],
}

并将app.vue 文件改为 jsx 文件即可。最简单的jsx 文件如下所示:

import { defineComponent, ref } from 'vue'
export default defineComponent({
  setup() {
    return () => (
      <div>
        Hello world!
      </div>
    )
  }
})

这里不具体介绍JSX 和 template 的写法区别。

2.2 引入ts

ts 也是我们在开发过程中,提升开发质量的保证。 虽然现在也有一些人诟病,任何地方都要添加类型是一件非常令人痛苦的事情,但总比,时刻都是随意推断类型来的舒适些。

通过下面的命令安装 ts。

npm install --save-dev typescript

@vue/cli-plugin-typescript内部预置了ts-loader的配置,无需单独配置 @vue/cli-plugin-typescript介绍

安装 ts-loader 等

npm install --save-dev @vue/cli-plugin-typescript

添加 tsconfig 配置,一个可以参考的配置

{
  // 编译过程中的参数
  "compilerOptions": {
    // 在 .tsx文件里支持JSX: "React"或 "Preserve"。因为是vue 中的编译,所以是preserve
    "jsx": "preserve",
    // 指定ECMAScript目标版本
    "target": "esnext",
    "module": "esnext",
    // 启用严格检查
    "strict": true,
    // 从 tslib 导入辅助工具函数(比如 __extends, __rest等)
    "importHelpers": true,
    // 决定如何处理模块。或者是"Node"对于Node.js/io.js,或者是"Classic"(默认)。查看模块解析了解详情。
    "moduleResolution": "node",
    // 启用实验性的ES装饰器。
    "experimentalDecorators": true,
    // 显示详细的诊段信息。
    "esModuleInterop": true,
    // 允许从没有设置默认导出的模块中默认导入。这并不影响代码的输出,仅为了类型检查。
    "allowSyntheticDefaultImports": true,
    // 生成相应的 .map文件。
    "sourceMap": true,
    "baseUrl": ".",
    // 允许编译javascript文件,默认为false
    "allowJs": false,
    // 要包含的类型声明文件名列表。
    "types": [
      "webpack-env"
    ],
    // 模块名到基于 baseUrl的路径映射的列表。
    "paths": {
      "@/*": [
        "src/*"
      ]
    },
    // 编译过程中需要引入的库文件的列表。
    "lib": [
      "esnext",
      "dom",
      "dom.iterable",
      "scripthost"
    ]
  },
  // 需要编译的文件
  "include": [
    "src/**/*.ts",
    "src/**/*.d.ts",
    "src/**/*.tsx",
    "src/**/*.vue"
  ],
  // 不需要编译的文件
  "exclude": [
    "node_modules"
  ]
}

2.3 引入 sass

Vite 提供了对 .scss, .sass, .less, .styl.stylus 文件的内置支持。因此没有必要为它们安装特定的 Vite 插件,但必须安装相应的预处理器依赖,依赖安装完项目就可以直接解析less文件了。

$ npm install less less-loader -D 
# or 
$ yarn add less less-loader -D

注意这里有个坑,less 和 less-loader 需要写到 devDependencies 里面,否则运行会报错。 

2.4 引入 eslint & 引入prettier 

这两个的引入我是参考的 vue3+ts+vite项目中使用eslint+prettier+stylelint+husky指南 - 掘金

这篇文章讲的很详细了,我就不在此班门弄斧了。 

三、引用

1、彻底弄懂 `npm init vue@latest` 发生了什么 - 掘金  

2、渲染函数 & JSX | Vue.js

3、Facebook JSX文章 

4、这篇文章介绍了jsx 写法和template写法的区别,以及jsx 写法的好处。探索 Vue 3 中的 JSX - 掘金

5、tsconfig 官方文档: 编译选项 · TypeScript中文网 · TypeScript——JavaScript的超集

四、总结

这里只是一个简单的配置。 甚至还不敢保证打包之后的文件能否访问。

对每个配置的作用也没有解释清楚。

这里列出在写的过程中,存疑的问题,待后续填坑。

1、vite 和 webpack的区别是什么?

2、sass 和 scss 等,和css 相比的区别是什么? 有什么规范?在项目中有什么实战?为了实现在编写过程中的方便,以及编译之后能在浏览器端正常运行,需要使用什么插件?各个插件的作用是什么?

3、ts 也是在开发阶段引入,编译之后,是 纯js 吗?配置的tsconfig 是在哪里运行的?

4、eslint 和prettier安装之后又是在哪里运行的?各自的配置中是什么含义? 

等把这些问题解决了之后,才算对开发阶段的工程化有了一个简单的认识。文章来源地址https://www.toymoban.com/news/detail-520153.html

到了这里,关于前端工程化 | vue3+ts+jsx+sass+eslint+prettier 配置化全流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 为react项目添加开发/提交规范(前端工程化、eslint、prettier、husky、commitlint、stylelint)

    因历史遗留原因,接手的项目没有代码提醒/格式化,包括 eslint、pretttier,也没有 commit 提交校验,如 husky、commitlint、stylelint,与其期待自己或者同事的代码写得完美无缺,不如通过一些工具来进行规范和约束。 eslint 是一个代码校验工具,用来规范项目代码风格。 初始化 通

    2024年02月14日
    浏览(77)
  • 【几乎最全/全网最长的 2 万 字】前端工程化完整流程:从头搭到尾(vue3 + vite + qiankun + docker + tailwindcss + iview......)

    使用 Vite + Vue3 + Typescript + axios + echarts + pinia + view-ui-plus + vue-router + less + sass + scss + css + tailwindcss + animate.css + vite-svg-loader + postcss + stylelint + eslint + prettier + autoprefixer + commitizen + commitlint + vite-plugin-compression + vite-plugin-qiankun + Docker + nginx.conf…等等插件,带你从 0 开始一步一步搭

    2024年02月12日
    浏览(45)
  • Vue3工程化项目搭建

    源码:vue3-quick-start 预览:vue3-quick-start 工程化概述 前端工程化大致可以分为模块化、组件化、规范化和自动化。 规范化 项目目录结构 语法提示 编码风格规范 联调规范 文件命名规范 代码样式规范 git flow 模块化 模块化是指将一个文件拆分成多个相互依赖的文件,最后进行

    2024年02月16日
    浏览(31)
  • 前端工程化-VUE

    高效的开发离不开基础工程的搭建。本章主要介绍如何使用Vue进行实际SPA项目的开发,这里使用的是目前热门的JavaScript应用程序模块打包工具Webpack,进行模块化开发、代码编译和打包。 Vue脚手架指的是Vue-cli,它是一个专门为单页面应用快速搭建繁杂程序的脚手架,它可以轻

    2024年02月08日
    浏览(35)
  • Vue3实战(05)-教你快速搭建Vue3工程化项目

    除了Vue 3这个库,还需Vue 3 最新全家桶。 之前语法演示直接使用script引入Vue 3,从而在浏览器里实现所有调试功能。但实际项目中,使用专门调试工具。在项目上线之前,代码也需打包压缩,并考虑到研发效率和代码可维护性,所以在下面,需建立一个工程化项目实现这些功

    2024年02月08日
    浏览(29)
  • Vue2向Vue3过度核心技术工程化开发和脚手架

    1.1 开发Vue的两种方式 核心包传统开发模式:基于html / css / js 文件,直接引入核心包,开发 Vue。 工程化开发模式:基于构建工具(例如:webpack)的环境中开发Vue。 工程化开发模式优点: 提高编码效率,比如使用JS新语法、Less/Sass、Typescript等通过webpack都可以编译成浏览器识

    2024年02月11日
    浏览(33)
  • 前端Vue入门-day03-用Vue实现工程化、组件化开发

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 生命周期 Vue 生命周期 和 生命周期的四个阶段  Vue 生命周期函数(钩子函数) 案例-create的应用 案例-mounted的应用 工程化开发 脚手架 Vue CLI 开发 Vue 的两种方式 基本介

    2024年02月15日
    浏览(35)
  • Ajax,前后端分离开发,前端工程化,Element,Vue路由,打包部署

    Ajax介绍 Axios 案例 前后端分离 前端工程化 环境准备,nodejs安装,D:javaprojectjavawebday03-Vue-Elementday03-Vue-Element资料NodeJS安装文档 Vue项目简介 它本来默认端口号是8080 ,但这就和tomcat冲突了所以修改为7000 Vue项目开发流程 Vue组件库Element pagination分页组件,table表格组件,Dial

    2024年02月05日
    浏览(39)
  • vue3+ts项目02-安装eslint、prettier和sass

    项目创建 生成配置文件 安装其他插件 修改.eslintrc.cjs 添加.eslintignore https://prettier.io/ 添加.prettierrc.cjs 添加.prettierignore https://stylelint.io/ 配置.stylelintrc.cjs 配置忽略文件.stylelintignore package.json增加配置 执行 yarn format 会自动格式化css、js、html、json还有markdown代码

    2024年02月06日
    浏览(37)
  • 前端工程化详解——理解与实践前端工程化

    前言: 前端工程化一直是一个老生常谈的问题,不管是面试还是我们在公司做基建都会经常提到前端工程化,那么为什么经常会说到前端工程化,并没有听过后端工程化、Java工程化或者Python工程化呢?我们理解的前端工程化是不是一直都是Webpack的性能调优,或者是一个cli工

    2024年02月02日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包