vite构建react移动端项目,基础配置

仅供练习,以下配置没有应用到实际项目中。

目录

1、构建react项目

2、在创建好的项目中安装初始依赖

3、因为是移动端H5项目,需要配置响应式插件

一、autoprefixer

二、amfe-flexible

三、postcss-pxtorem

配置步骤:

a.安装依赖

b.在main.tsx中引入“amfe-flexible”

c.在vite.config.ts配置

4、配置别名,方便文件引入。

a.安装node的声明文件

 b.在tsconfig.json

c.在vite.config.ts

5、配置sass

a.安装依赖

b.在vite.config.ts


1、构建react项目

npm init vite@latest

然后根据提示定义项目名称、项目需要使用的js库(react、vue等)、项目的开发语言(js、ts等);

2、在创建好的项目中安装初始依赖

npm i /npm install

3、因为是移动端H5项目,需要配置响应式插件

可参考博客:https://blog.csdn.net/Armof/article/details/131102279

一、autoprefixer

根据 can i use 网站提供的兼容性表格,自动添加适合各种浏览器的前缀。即下图:

二、amfe-flexible

是配置可伸缩布局方案,主要是将1rem设为viewWidth/10。

三、postcss-pxtorem

是PostCSS的插件,用于将像素单元px生成rem单位。

配置步骤:

a.安装依赖

npm i postcss postcss-pxtorem amfe-flexible autoprefixer --save

补充:在ts版本中安装一下postcss-pxtorem的类型文件

npm i --save-dev @types/postcss-pxtorem

笔者安装的版本分别是:postcss:^8.4.35、 postcss-pxtorem:^6.1.0、amfe-flexible:^2.2.1、autoprefixer:^10.4.17;

b.在main.tsx中引入“amfe-flexible”

//main.tsx

import 'amfe-flexible'

c.在vite.config.ts配置

//vite.config.ts

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import autoprefixer from "autoprefixer";
import postCssPxToRem from "postcss-pxtorem";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  css: {
    postcss: {
      plugins: [
        //自动补充前缀
        autoprefixer({
          overrideBrowserslist: [
            "Android 4.1",
            "iOS 7.1",
            "Chrome > 31",
            "ff > 31",
            "ie >= 8",
          ],
        }),
         //单位转化
        postCssPxToRem({
          // rootValue: 75, // 75表示750设计稿,37.5表示375设计稿
          //@ts-expect-error 这里不做类型检测
          rootValue({ file }) {
            // 项目中使用的 antd官方社区的 antd-mobile 组件库。这里做了区分,如果样式文件命中有 antd-mobile 则以 375 样稿转化。这里不做区分,那么 antd-mobile 各组件样式会变形。
            return file.indexOf('antd-mobile') !== -1?37.5:75
          },
          propList: ["*"], // 需要转换的属性,这里选择全部都进行转换
          selectorBlackList: ["norem"], // 过滤掉norem-开头的class,不进行rem转换
        }),
      ],
    },
  },
});

4、配置别名,方便文件引入。

参考博客:别名配置

a.安装node的声明文件

 npm i  @types/node -D

 b.在tsconfig.json

在该配置文件中配置@符号,以便vscode(笔者是用该编辑器开发)“认识”

{
  "compilerOptions": {
    // 让vscode识别该符号
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"]
    }
  }
}

c.在vite.config.ts

在该文件中配置,以便vite能“认识”@符号

import { defineConfig } from 'vite';
import react from "@vitejs/plugin-react";
import path from "path";
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  // 让vite认识@符号
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    },
  },
})

5、配置sass

方便样式开发

a.安装依赖

npm i sass -D

b.在vite.config.ts

在文件中配置预处理器:

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import path from "path";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  css: {
    // postcss的一些配置
    // ...

    //配置scss 
    preprocessorOptions: {
      scss: {
        // 表示在src下的assets文件夹下的scss文件夹下有个 normal.module.scss 文件,在该文件中定义了一些通用的样式,全局样式
        additionalData: `@import "${path.resolve(__dirname,"src/assets/scss/normal.module.scss")}";`,
        javascriptEnabled: true,
      },
    },
  },
});

注:如果上面的   additionalData: `@import "${path.resolve(__dirname,"src/assets/scss/normal.module.scss")}";`,

这种写法,导致项目运行时报错,那么可以将绝对路径改为相对路径,即additionalData:`@import "./src/assets/scss/normal.module.scss";`

好了,以上就是目前基础的配置,后续如有新增,定当及时补充。如有更高的建议,可留言!

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值