vite相关配置

1、vite开发环境和生产环境的环境变量配置

1、环境变量配置
vite本身会直接读取为什么会读取,因为含有dotenv第三方库 ,会直接读取 .env文件,

2、css模块化简单处理

css:{modules:{localsConvention: "camselCaseOnly" // 打包配置为驼峰命名规则。sopeBehaviour:"local" // 配置当前是全局 还是 局部。gengerateScopedName: //[name][local][hash:5] , 配置生成的css样式名称,也可以配置成函数。 一般不动hashPrefix:"hellow" // 配置hash生成规则 主要和 name 联用。globalModulePaths:[] // 配置不参与 模块化的文件路径}, //是对css模块化默认行为进行覆盖},preprocessorOptions:{less:{math:"always", // 配置lessc的编译内容,遇到乘除法自动进行globalVars:{ // 注入全局变量css  @mainColor就可以直接使用mainColor:"red"}},sass:{}devSourcemap:true,// 开启css索引文件,可以在报错的时候直接定位 直接定位到源代码}
}

1、为了防止样式被覆盖,新建的css文件可以如下,通过加上module来改变css最终生成规则,会在类名的后面生成一个has值。

a.module.css

3、postcss的理解

1、保证css在执行运行起来万无一失,,去将语法糖进行编译(嵌套语法,函数,变量)变成原生的css,在次对未来的高级语法css进行降级,前缀补全,输送到浏览器。(postcss包含了less)

npm install postcss -D

3.1、解释一下 npm install XXX 加上-s、-d、-g和什么都不加的区别。
1.npm install XXX -s

npm install XXX -s 相当于 npm install -S 相当于 npm install --save
这样安装是局部安装的,会写进package.json文件中的dependencie里。
dependencies: 表示生产环境下的依赖管理;
说白了你安装一个库如果是用来构建你的项目的,比如echarts、element-ui,是实际在项目中起作用,就可以使用 -s 来安装。

2.npm install XXX -d

npm install XXX -d 相当于 npm install -D 相当于 npm install --save-dev
这样安装是局部安装的,会写进package.json文件中的devDependencies 里。
devDependencies :表示开发环境下的依赖管理;
如果你安装的库是用来打包的、解析代码的,比如webpack、babel,就可以用 -d 来安装,项目上线了,这些库就没用了,不然留这些库给用户自己来打包和解析代码嘛。

3.npm install XXX -g

npm install XXX -g 表示全局安装,安装一次过后,你就可以在其他直接用啦。

4.npm install XXX

npm install XXX 什么都不加的时候
npm 5开始通过npm install 什么都不加 和 npm install --save一样,都是局部安装并会把模块自动写入package.json中的dependencies里。

3.2 postcss内置属性

1、Autoprefixer浏览器补全机制,比如我们使用了box-sizing:border-box;

box-sizing:border-box;
//浏览器自动补全 自动生成以下代码
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;

2、postcss-preset-env:未来语法机制,可以书写最新浏览器语法内容。

const postcssPresetEnv = require('postcss-preset-env');const yourConfig = {plugins: [/* other plugins *//* remove autoprefixer if you had it here, it's part of postcss-preset-env */postcssPresetEnv({/* pluginOptions */features: {'nesting-rules': {noIsPseudoSelector: false,},},})]
}
比如我们可以使用这些语法
@custom-media --viewport-medium (width <= 50rem);
@custom-selector :--heading h1, h2, h3, h4, h5, h6;:root {--mainColor: #12345678;
}body {color: var(--mainColor);font-family: system-ui;overflow-wrap: break-word;
}:--heading {background-image: image-set(url(img/heading.png) 1x, url(img/heading@2x.png) 2x);@media (--viewport-medium) {margin-block: 0;}
}a {color: rgb(0 0 100% / 90%);&:hover {color: rebeccapurple;}
}/* becomes */:root {--mainColor: rgba(18, 52, 86, 0.47059);
}body {color: rgba(18, 52, 86, 0.47059);color: var(--mainColor);font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Droid Sans, Helvetica Neue;word-wrap: break-word;
} 

3、定义css规范我们可以使用styleLint用于规范css原则,使用方法如下:
以viteVue为例

安装相关依赖
npm install postcss stylelint stylelint-config-standard --save-dev
//简洁版
// 引入 postcss 相关配置
import postcss from 'postcss';
import stylelint from 'stylelint';
import stylelintPlugin from 'stylelint-webpack-plugin';
export default defineConfig({// 其他配置...css: {postcss: {plugins: [stylelintPlugin],},},
});
然后定一个 .stylelintrc.json配置文件和vite.config.json同级
// 
module.exports = {extends: ['stylelint-config-standard', // 配置stylelint拓展插件'stylelint-config-html/vue', // 配置 vue 中 template 样式格式化'stylelint-config-standard-scss', // 配置stylelint scss插件'stylelint-config-recommended-vue/scss', // 配置 vue 中 scss 样式格式化'stylelint-config-recess-order', // 配置stylelint css属性书写顺序插件,'stylelint-config-prettier', // 配置stylelint和prettier兼容],overrides: [{files: ['**/*.(scss|css|vue|html)'],customSyntax: 'postcss-scss',},{files: ['**/*.(html|vue)'],customSyntax: 'postcss-html',},],ignoreFiles: ['**/*.js','**/*.jsx','**/*.tsx','**/*.ts','**/*.json','**/*.md','**/*.yaml',],/*** null  => 关闭该规则* always => 必须*/rules: {'value-keyword-case': null, // 在 css 中使用 v-bind,不报错'no-descending-specificity': null, // 禁止在具有较高优先级的选择器后出现被其覆盖的较低优先级的选择器'function-url-quotes': 'always', // 要求或禁止 URL 的引号 "always(必须加上引号)"|"never(没有引号)"'no-empty-source': null, // 关闭禁止空源码'selector-class-pattern': null, // 关闭强制选择器类名的格式'property-no-unknown': null, // 禁止未知的属性(true 为不允许)'block-opening-brace-space-before': 'always', //大括号之前必须有一个空格或不能有空白符'value-no-vendor-prefix': null, // 关闭 属性值前缀 --webkit-box'property-no-vendor-prefix': null, // 关闭 属性前缀 -webkit-mask'selector-pseudo-class-no-unknown': [// 不允许未知的选择器true,{ignorePseudoClasses: ['global', 'v-deep', 'deep'], // 忽略属性,修改element默认样式的时候能使用到},],},
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习_决策树与随机森林

决策树是一种常用的监督学习算法&#xff0c;既可以用于分类任务也可以用于回归任务。决策树通过递归地将数据集划分成更小的子集&#xff0c;逐步建立树结构。每个节点对应一个特征&#xff0c;树的叶子节点表示最终的预测结果。构建决策树的关键是选择最佳的特征来分割数据&a…

图文型LED显示屏的结构与安装

随着科技的不断进步&#xff0c;LED显示屏已成为商业广告、公共信息显示等领域不可或缺的一部分。图文型LED显示屏以其独特的优势和多样化的应用场景&#xff0c;受到了市场的广泛欢迎。本文将详细介绍图文型LED显示屏的结构特点、工作原理以及安装指南。 1、图文型LED显示屏的…

Python项目开发实战:看图猜成语小程序(案例教程)

一、项目背景与概述 在现代社会,随着智能手机的普及和移动互联网的快速发展,移动应用(App)已经成为人们日常生活中不可或缺的一部分。看图猜成语作为一种集知识性和娱乐性于一体的游戏,深受大众喜爱。本项目旨在开发一个基于Python的看图猜成语小程序,让用户能够通过简单…

跨境电商|Facebook Marketplace怎么做?

2016 年&#xff0c;Facebook打造了同名平台 Facebook Marketplace。通过利用 Facebook 现有的庞大客户群&#xff0c;该平台取得了立竿见影的成功&#xff0c;每月访问量将超过 10 亿。对于个人卖家和小企业来说&#xff0c;Facebook Marketplace是一个不错的销货渠道&#xf…

Java内部类、枚举类、注解类

Java 是一种面向对象的编程语言&#xff0c;它支持多种类型的类&#xff0c;包括内部类、枚举类和注解类 一、内部类&#xff08;Inner Class&#xff09;&#xff1a; 内部类是定义在另一个类内部的类。它可以访问外部类的成员&#xff08;包括私有成员&#xff09;&#xff…

AIGC在移动APP开发中的应用及未来前景

随着科技的不断进步&#xff0c;人工智能生成内容&#xff08;AIGC&#xff0c;Artificial Intelligence Generated Content&#xff09;在移动应用开发中的应用越来越广泛。AIGC不仅能提高开发效率&#xff0c;还能带来更好的用户体验。本文将探讨AIGC在移动APP开发中的应用及…

通过ssr-echarts,服务端生成echarts图

ssr-echarts &#xff1a;一个开源项目&#xff0c;它能够服务端渲染 ECharts 图表&#xff0c;并直接生成 PNG 图片返回。该项目提供了多种主题&#xff0c;并且支持 GET 和 POST 请求。如果参数较多&#xff0c;建议使用 POST 方法。用户可以自己部署这个服务。 1. 服务端安装…

Three.js-实现加载图片并旋转

1.实现效果 2. 实现步骤 2.1创建场景 const scene new THREE.Scene(); 2.2添加相机 说明&#xff1a; fov&#xff08;视场角&#xff09;&#xff1a;视场角决定了相机的视野范围&#xff0c;即相机可以看到的角度范围。较大的视场角表示更广阔的视野&#xff0c;但可能…

第 10 章 nodelet(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 10.4 nodelet ROS通信是基于Node(节点)的&#xff0c;Node使用方便、易于扩展&#xff0c;可以满足ROS中大多…

SBOM是如何帮助医疗器械制造商提高产品透明度的?

SBOM&#xff08;软件物料清单&#xff09;通过以下方式帮助医疗器械制造商提高产品透明度&#xff1a; 1. 详细记录软件组成 SBOM详细列出了医疗器械所使用的所有软件组件、版本、作者、许可证信息等。这使得制造商能够清晰地了解产品的软件组成&#xff0c;包括每个组件的来…

基于springboot实现民族婚纱预定系统项目【项目源码+论文说明】

基于springboot实现民族婚纱预定系统的设计演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本民族婚纱预定系统就是在这样的大环境下诞生&#xff0c;其可…

【Emgu CV教程】10.15、FillPoly()不规则形状填充颜色

文章目录 一、概念二、填充不规则图形1.原始素材2.代码3.运行结果 二、最大轮廓填充颜色1.原始素材2.代码3.运行结果 一、概念 图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域&#xff0c;连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来…

【最新鸿蒙应用开发】——Want信息载体

信息传递载体Want 1、概述 上一章节我们学习了UIAbility组件 【最新鸿蒙应用开发】——一篇搞懂什么是UIAbility-CSDN博客 &#xff0c;其中组件间的交互传递信息的媒介就是Want&#xff0c;本章节我们来更加深入学习Want的相关知识。 Want是一种对象&#xff0c;用于在应用组…

2. JavaScript 语法和数据类型

1. 基础 JavaScript不区分大小写 2. 注释 // 单行注释/* 这是一个更长的&#xff0c;多行注释 *//* 然而&#xff0c;你不能&#xff0c;/* 嵌套注释 */ 语法错误 */3. 声明 var 声明一个变量&#xff0c;可选初始化一个值。 let 声明一个块作用域的局部变量&#xff0c;可…

ORM(对象关系映射)概念详解

一、技术难点 ORM&#xff0c;即对象关系映射&#xff08;Object-Relational Mapping&#xff09;&#xff0c;它的技术难点主要体现在如何将面向对象编程中的类和对象高效地映射到关系型数据库中的表和记录。具体来说&#xff0c;有以下几个方面的技术挑战&#xff1a; 数据类…

计算机毕业设计项目、管理系统、可视化大屏、大数据分析、协同过滤、推荐系统、SSM、SpringBoot、Spring、Mybatis、小程序项目编号1-500

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

桌面型激光雕刻机的发展前景及TMC应用优势

一、行业现状 近两年来&#xff0c;激光雕刻行业正处于快速发展阶段。随着人们生活水平的提高&#xff0c;对个性化、定制化产品的需求日益增加&#xff0c;激光雕刻以其独特的创意和精美的效果&#xff0c;满足了消费者对个性化产品的追求。同时&#xff0c;随着科技的不断进…

OCP 安装 OceanBase集群(企业版3.2.4.1)

创建集群 登录OCP界面 1.点击左侧工具栏中的集群 2.进入集群页面后 点击 右上角的创建集群 集群设置 进入 创建集群 页面&#xff0c;进行 目标集群 配置 集群种类 根据 生产环境 选择 分布式 或者 单机集中式&#xff0c;第一次安装 集群类型 选择 主集群。 注意&#xf…

计算机网络到底是指什么?

计算机网络是信息技术领域中最为核心和复杂的一部分&#xff0c;它涵盖了众多的技术原理和应用。下面&#xff0c;我们将从技术层面深入探讨计算机网络的相关内容。 一、计算机网络的分层模型 计算机网络的分层模型是网络通信的基石&#xff0c;它将网络通信过程划分为不同的层…

怎么解决企业生产计划排程的几大难点?

生产计划排程&#xff0c;作为企业管理中的核心环节&#xff0c;其复杂性和动态性一直困扰着众多企业。然而&#xff0c;通过科学的策略和技术手段&#xff0c;这些难点并非不可攻克。 生产环境的动态变化&#xff0c;如临时订单改变、紧急插单的需求、产品流程变化等&#xff…