前端工程化(2):postCss 和 babel的使用

2023-10-26

前端工程化(2):postCss 和 babel的使用

本文例子可以点击这里

0 前言

babel是什么:
官网给出的定义

Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。

postcss是什么:
官网给出的的定义:

PostCSS 是一个允许使用 JS 插件转换样式的工具。 这些插件可以检查(lint)你的 CSS,支持 CSS Variables 和 Mixins, 编译尚未被浏览器广泛支持的先进的 CSS 语法,内联图片,以及其它很多优秀的功能。

PostCSS 接收一个 CSS 文件并提供了一个 API 来分析、修改它的规则(通过把 CSS 规则转换成一个抽象语法树的方式)。在这之后,这个 API 便可被许多插件利用来做有用的事情,比如寻错或自动添加 CSS vendor 前缀。

总而言之:这两个插件对于前端工程化是非常重要的

1 在vuecli中使用postcss

使用vue-cli 安装一个脚手架

vue create vue_postcssbabel

因为vue-cli已经内置postcss-loader,所以直接之前根目录下新建文件postcss.config.js 即可

在该文件上注册插件

module.exports = {
    'plugins': {
        'autoprefixer': {},
        'cssnano': {},
        'postcss-preset-env': {}
    }
}

推荐插件可以去postcss官网上查看

这里介绍三个常用插件

autoprefixer:利用从 Can I Use 网站获取的数据为 CSS 规则添加特定厂商的前缀。 Autoprefixer 自动获取浏览器的流行度和能够支持的属性,并根据这些数据帮你自动为 CSS 规则添加前缀。

PostCSS Preset Env:将最新的 CSS 语法转换成大多数浏览器都能理解的语法,并根据你的目标浏览器或运行时环境来确定你需要的 polyfills,此功能基于 cssdb 实现。

cssnano:缩减(minification)是指利用各种方法来 减少代码体积的过程。和 gzip 之类的保留 CSS 文件的原始语义(即无损失)的技术不同,缩减(minification) 天生是一个有损失的过程,例如,其中某些值可能会被替换为更简化的 等价语法,或者选择器被合并。

在app.vue中简单编辑

<style lang="less">
:fullscreen {
  color:red
}

</style>

运行npm run build 查看编译出来的文件:

:-webkit-full-screen {
    color: red
}

:-ms-fullscreen {
    color: red
}

:fullscreen {
    color: red
}

可以看到postcss插件中使用的autoprefixer插件已经生效

2 在vuecli中使用babel

因为vuecli在生成文件时已经生成了babel.config.js,我们只要做一个简单的验证就行:
打开babel.config.js 把preset中的"@vue/cli-plugin-babel/preset"删除

在app.vue中写一个es6方法

export default {
  name: "App",
  components: {
    HelloWorld
  },
  mounted(){
    this.test()
  },
  methods:{
    test(){
      return ()=>{
        console.log(`我是es5`);
      }
    }
  }
};
</script>

执行npm run build
能找到这一段methods:{test:function(){return function(){console.log("我是es5")}}}} 可见箭头函数已经被转换成es5语法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端工程化(2):postCss 和 babel的使用 的相关文章

随机推荐

  • java.sql.SQLNonTransientConnectionException: Could not create connection to database server

    在搭建springboot项目时 整合JdbcTemplate和MyBatis连接数据库报错 报错为 java sql SQLNonTransientConnectionException Could not create connecti
  • 渐变维度(Slowly Changing Dimension)及其处理方法

    渐变维度 Slowly Changing Dimension 及其处理方法 要讨论什么是渐变维度 或者缓慢变化维度 就要先说说什么是维度 虽然经常挂在嘴边的词 但解释起来确实有难度 更不要说给出一个概念了 我们 平时提到的0维的点 一维的线
  • PTA(test)python3

    考试题 判断题 选择题 函数题 6 1 编写函数 接收参数a和n 计算并返回形式如a aa aaa aaaa aaa aaa的表达式前n项的值 其中a为小于10的自然数 8 分 6 2 jmu python 判断质数 10 分 编程题 7
  • 遇到pdf文件损坏打不开要如何解决?

    在我们平时的办公中 会使用电脑来编辑 接收各种电子文件 大家会发现pdf文件是我们经常使用的一种文件类型 但是 有时候 我们会发现自己的pdf文件根本打不开 相信很多朋友遇到这种情况不知道该怎么办 如果你也想知道具体的原因和解决方法 就跟着
  • 服务器运维方法

    为保官网的正常稳定运行 也为了更好的对服务器进行管理维护 特制定以下运维方案 1 硬件系统管理 一 服务器运行稳定性 服务器在运往托管商处上架前 应对服务器的稳定性进行全面的测试 包括网站主程序的测试 网站数据库的测试 网站压力测试等多项内
  • C++复习笔记--auto A:B 的使用

    1 用法 1 1 for auto A B 利用 A 遍历并获取 B 容器中的每一个值 但不会影响容器 B 的内容 include
  • SpringCloudAlibaba微服务架构搭建(四)Gateway网关(包含源码)

    目录 前言 1 什么是Spring Cloud Gateway 2 核心概念与架构解析 1 Route 路由 2 谓语 断言 3 Filter 过滤器 4 负载均衡与动态路由 编辑 3 请求路由与负载均衡 请求路由 负载均衡 动态路由 4
  • 常用文件扩展名介绍

    我们对文件命名是以扩展名加以区分 即文件名格式为 主文件名 扩展名 系统文件按照不同的格式和用途进行分类 以下是常用文件扩展名介绍 1 txt 记事本 2 doc docx word文档 3 xls xlsx excel表格 4 ppt p
  • chatgpt每日问答

    20230411 将数组转成十六进制字符串 array 12 34 56 78 90 hex string join 02x format x for x in array print hex string 20230409 变声 用pyt
  • 中文情感分类

    本文通过ChnSentiCorp数据集介绍了文本分类任务过程 主要使用预训练语言模型bert base chinese直接在测试集上进行测试 也简要介绍了模型训练流程 不过最后没有保存训练好的模型 一 任务和数据集介绍 1 任务 中文情感分
  • 【spring boot】service层事务控制

    我们再做spring boot项目的时候 经常需要在一个service层调用多个dao层 操作不同的数据库表来实现业务 这个时候要对事务进行一个统一的过程 spring boot提供了这种支持 首先需要在service层添加 Transac
  • JSP数据交互(二)---》jsp四大作用域

    jsp四大作用域 application作用域 对应整个应用上下文 page作用域 作用域指本JSP页面范围 pageContext setAttribute 键 值 pageContext getAttribute 键 为
  • 电商平台数据查询工具(京东数据分析软件)

    京东爆款如何打造 是很多商家都头疼的问题 下面 6个步骤分享给大家 首先是选品 对于处于不同阶段的商家来说 选品方式不同 针对正准备开店的商家 选品可通过以下方式 1 市场分析和自身情况 确定主打品类 2 行业市场和京东平台市场 品类多维度
  • 使用R语言生成相同分组数据的抽样ID,并生成测试集和训练集

    使用R语言生成相同分组数据的抽样ID 并生成测试集和训练集 在进行数据分析或机器学习任务时 我们经常需要将数据集划分为训练集和测试集 为了确保实验结果的可复现性 我们需要为相同分组的数据生成相同的抽样ID 本文将介绍如何使用R语言实现这一过
  • pbr制作

    http www aboutcg org course tut sd 141015 http www zf3d com news asp id 27081
  • 数学中的导数

    导数 Derivative 是微积分学 微积分学是研究极限 微分学 积分学和无穷级数等的一个数学分支 中重要的基础概念 一个函数在某一点的导数描述了这个函数在这一点附件的变化率 导数的本质是通过极限的概念对函数进行局部的线性逼近 当函数f的
  • python代码,两个4*4旋转矩阵之间的位姿变化,相对旋转矩阵

    python代码 两个4 4旋转矩阵之间的位姿变化 也就是求两个旋转矩阵之间的相对旋转矩阵 import numpy as np def get transform matrix rot mat1 rot mat2 Calculate th
  • asp.net毕业设计题目选择

    1 asp net 超市管理系统 rar 2 客户关系系统 rar 3 ASP NET BS结构的城市酒店入住信息管理系统的设计 源代码 论文 rar 4 asp net FTP客户端设计与开发 源代码 论文 rar 5 ASP NET 网
  • DNS 配置错误

    curl 6 Could not resolve host 今天看 ttrss 的时候发现文章都是两天前的了 感觉不太对劲 经过查验提示curl 6 Could not resolve host 在查找过资料后 是 DNS 出现了 下面给出
  • 前端工程化(2):postCss 和 babel的使用

    前端工程化 2 postCss 和 babel的使用 本文例子可以点击这里 0 前言 babel是什么 官网给出的定义 Babel 是一个工具链 主要用于将 ECMAScript 2015 版本的代码转换为向后兼容的 JavaScript