国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

react create-react-app v5配置 px2rem (暴露 eject方式)

這篇具有很好參考價值的文章主要介紹了react create-react-app v5配置 px2rem (暴露 eject方式)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

環(huán)境信息:

create-react-app v5
“react”: “^18.2.0”
“postcss-plugin-px2rem”: “^0.8.1”

配置步驟:

我這個方式是 npm run eject 暴露 webpack配置的方法
1.安裝 postcss-plugin-px2rem 和 lib-flexible (注意這里安裝 postcss-px2rem、px2rem這類都行,都是 px2rem衍生的庫,不過不同的庫具體配置不一樣,建議查看文檔具體有哪些參數(shù)。查看方法可以去 npm 官網(wǎng) 搜索包名,查看詳情即可,或者問 ai 比如: 文心,gpt)

cnpm install postcss-plugin-px2rem  lib-flexible --save

2.配置config/webpack.config.js
加上這段代碼:

//px2rem的配置
const px2rem = require("postcss-plugin-px2rem");
const px2remOpts = {
	rootValue: 37.5, //這個值定義了1rem應該等于多少像素。在這里,1rem等于37.5
	exclude: /(node_module)/, //這是一個正則表達式,用于指定哪些文件應該被排除在轉換之外。在這里,所有在'node_module'目錄下的文件都將被排除。
	// mediaQuery: false, //這個選項表示是否應該在媒體查詢中轉換px單位。在這里,它被設置為false,意味著媒體查詢中的px單位將不會被轉換
	// minPixelValue: 3, //這個選項表示應該轉換的最小px值。在這里,只有px值大于或等于3的才會被轉換
};

然后在 getStyleLoaders 里加上配置(搜索 getStyleLoaders),
在 postcss-loader 下的postcssOptions 里加上

[
  px2rem(px2remOpts)
],

postcss-preset-env 同級別的。
也就是 這個地方看截圖:
react create-react-app v5配置 px2rem (暴露 eject方式),create-react-app v5,React,react.js,前端,前端框架

這一段完整的代碼:

      {
        // Options for PostCSS as we reference these options twice
        // Adds vendor prefixing based on your specified browser support in
        // package.json
        loader: require.resolve('postcss-loader'),
        options: {
          postcssOptions: {
            // Necessary for external CSS imports to work
            // https://github.com/facebook/create-react-app/issues/2677
            ident: 'postcss',
            config: false,
            plugins: !useTailwind
              ? [
                  'postcss-flexbugs-fixes',
                  [
                    'postcss-preset-env',
                    {
                      autoprefixer: {
                        flexbox: 'no-2009',
                      },
                      stage: 3,
                    },
                  ],
                  [
                    px2rem(px2remOpts)
                  ],
                  // Adds PostCSS Normalize as the reset css with default options,
                  // so that it honors browserslist config in package.json
                  // which in turn let's users customize the target behavior as per their needs.
                  'postcss-normalize',
                ]
              : [
                  'tailwindcss',
                  'postcss-flexbugs-fixes',
                  [
                    'postcss-preset-env',
                    {
                      autoprefixer: {
                        flexbox: 'no-2009',
                      },
                      stage: 3,
                    },
                  ],
                ],
          },
          sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment,
        }
      } 

3.在 src/index.js(入口文件引入 import ‘lib-flexible’; )
react create-react-app v5配置 px2rem (暴露 eject方式),create-react-app v5,React,react.js,前端,前端框架
4.public/index.html 里 注釋調 meta 和加上 一段兼容ipad和ipad pro 的兼容代碼。

注釋掉(注釋的原因是 lib-flexible 會自動創(chuàng)建 meta):

<meta name="viewport" content="width=device-width, initial-scale=1" />

在 head里加上(ipad和ipad pro ):

<!-- 淘寶彈性布局方案lib-flexible不兼容ipad和ipad pro的解決方法 -->
    <script>
    /(iPhone|iPad|iPhone OS|Phone|iPod|iOS)/i.test(navigator.userAgent)&&(head=document.getElementsByTagName('head'),viewport=document.createElement('meta'),viewport.name='viewport',viewport.content='target-densitydpi=device-dpi, width=480px, user-scalable=no',head.length>0&&head[head.length-1].appendChild(viewport));
    </script>

這段代碼用于檢測用戶是否正在使用iPhone、iPad、iPod或iOS等蘋果設備。如果是,它將創(chuàng)建一個新的視口元標簽,并添加到HTML文檔的頭部。視口元標簽的內(nèi)容設置為 ‘target-densitydpi=device-dpi, width=480px, user-scalable=no’,這意味著它會嘗試讓頁面在各種設備上看起來相似,頁面的寬度被設置為480px,并且用戶不能手動縮放頁面。

我的 index.html 代碼如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
    <!-- <meta name="viewport" content="width=device-width, initial-scale=1" /> -->
    <meta name="theme-color" content="#000000" />
    <meta
      name="description"
      content="Web site created using create-react-app"
    />
    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
    <!--
      manifest.json provides metadata used when your web app is installed on a
      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
    -->
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <!--
      Notice the use of %PUBLIC_URL% in the tags above.
      It will be replaced with the URL of the `public` folder during the build.
      Only files inside the `public` folder can be referenced from the HTML.

      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
      work correctly both with client-side routing and a non-root public URL.
      Learn how to configure a non-root public URL by running `npm run build`.
    -->
    <title>React App</title>
    <!-- 淘寶彈性布局方案lib-flexible不兼容ipad和ipad pro的解決方法 -->
    <script>
    /(iPhone|iPad|iPhone OS|Phone|iPod|iOS)/i.test(navigator.userAgent)&&(head=document.getElementsByTagName('head'),viewport=document.createElement('meta'),viewport.name='viewport',viewport.content='target-densitydpi=device-dpi, width=480px, user-scalable=no',head.length>0&&head[head.length-1].appendChild(viewport));
    </script>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
  
</html>

react create-react-app v5配置 px2rem (暴露 eject方式),create-react-app v5,React,react.js,前端,前端框架
5.重新運行 npm start 審查元素 看看 px 是不是被轉換成了rem。如果轉換成功說明,配置成功了。
可以在 App.js 里加上一個div然后在 App.css 里寫上一個width,height然后 用到 div上。

.box{
  width: 100px;
  height: 100px;
  background: red;
}

react create-react-app v5配置 px2rem (暴露 eject方式),create-react-app v5,React,react.js,前端,前端框架
運行之后的效果截圖:
從100px轉換成了1.333rem ,當切換時,他也跟著變大變小。
react create-react-app v5配置 px2rem (暴露 eject方式),create-react-app v5,React,react.js,前端,前端框架

rootValue 的計算方式 :

rootValue=設計圖的寬度/10
我是 375*812的設計圖 所以 就是 375/10=37.5
計算rem值時,應該將屏幕寬度除以10作為基準值。

postcss-plugin-px2rem 詳細配置:

postcss-plugin-px2rem是一個PostCSS插件,用于將px單位轉換為rem單位。該插件提供了以下參數(shù):

rootValue:指定根元素字體大小的值,默認為16。該值用于將px轉換為rem,例如,當rootValue設置為16時,10px會被轉換為0.625rem。

unitPrecision:指定轉換后的rem值保留的小數(shù)位數(shù),默認為5。

propList:指定需要轉換的CSS屬性,默認為[‘*’],表示所有屬性都會被轉換。你可以將其設為只轉換某些屬性,例如[‘font-size’]只轉換字體大小屬性。

selectorBlackList:指定不需要轉換的選擇器,可以是字符串或正則表達式。例如,你可以將其設置為[‘.no-rem’]來防止某些元素被轉換。

replace:指定是否替換原始的px值,默認為true。如果設置為false,則會在原始值后面添加轉換后的rem值,例如10px會被轉換為10px /* 0.625rem */。

mediaQuery:指定是否在媒體查詢中也進行轉換,默認為false。

minPixelValue:指定最小轉換單位的px值,默認為0。如果設置為2,則不會將1px轉換為0.0625rem等非常小的值。

以下是一個postcss-plugin-px2rem插件的配置示例:

const px2rem = require('postcss-plugin-px2rem');
const postcssOptions = {
  plugins: [
    px2rem({
      rootValue: 16,
      unitPrecision: 5,
      propList: ['*', '!font-size'],
      selectorBlackList: ['.no-rem'],
      replace: true,
      mediaQuery: false,
      minPixelValue: 0
    })
  ]
};

在上述示例中,我們將根元素的字體大小設置為16,保留5位小數(shù),只轉換除font-size以外的所有屬性,不轉換帶有.no-rem類名的元素,替換原始的px值,不在媒體查詢中進行轉換,最小轉換單位的px值為0。

總結:

其他 配置可以參考:
react create-react-app v5 從零搭建(使用 npm run eject)文章來源地址http://www.zghlxwxcb.cn/news/detail-729010.html

到了這里,關于react create-react-app v5配置 px2rem (暴露 eject方式)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 使用create-react-app創(chuàng)建react項目

    全局安裝create-react-app 使用create-react-app創(chuàng)建一個項目 如果不想全局安裝,可以直接使用npx 這需要等待一段時間,這個過程實際上會安裝三個東西 react: react的頂級庫 react-dom: 因為react有很多的運行環(huán)境,比如app端的react-native, 我們要在web上運行就使用react-dom react-scripts: 包含運

    2024年02月11日
    瀏覽(21)
  • 【React】02.create-react-app基礎操作

    【React】02.create-react-app基礎操作

    2023年最新珠峰React全家桶【react基礎-進階-項目-源碼-淘系-面試題】 有利于團隊協(xié)作開發(fā) 便于組件的復用:提高開發(fā)效率、方便后期維護、減少頁面中的冗余代碼 業(yè)務組件:正對項目需求封裝的 普通業(yè)務組件:沒有啥復用性,只是單獨拆出來的一個模塊 通用業(yè)務組件:具備

    2024年02月06日
    瀏覽(51)
  • 通用方案px2rem 處理 內(nèi)聯(lián)樣式、element-ui表頭折行、label折行、表單項換行異常

    通用方案px2rem 處理 內(nèi)聯(lián)樣式、element-ui表頭折行、label折行、表單項換行異常

    通用方案-處理element-ui 表單項label折行、換行異常,表頭折行問題 背景簡介:在實際的生產(chǎn)環(huán)境中,客戶用到的屏幕大大小小分辨率各有異同,但是為了布局的統(tǒng)一和美觀,我們采用了 postcss-px2rem 插件對element-ui進行響應式適配處理,大部分問題得到了解決,但仍有一些細枝

    2024年02月08日
    瀏覽(20)
  • React官網(wǎng)力薦Next.js:為何它取代了Create-React-App?

    隨著前端技術的快速發(fā)展,React作為一款領先的JavaScript庫,不斷推動著前端開發(fā)的變革。近期,React官網(wǎng)的一個顯著變化引起了廣大開發(fā)者的關注:它不再推薦使用Create-React-App作為構建React應用的默認工具,而是轉向了Next.js。 那么,Next.js究竟有何魔力,讓React官網(wǎng)做出如此決

    2024年04月26日
    瀏覽(26)
  • react快速開始(三)-create-react-app腳手架項目啟動;使用VScode調試react

    react快速開始(三)-create-react-app腳手架項目啟動;使用VScode調試react

    create-react-app(以下簡稱cra)作為react官方提供的腳手架工具,是目前生成react項目一個非常常用和主流的工具。很多企業(yè)級的應用搭建也是基于這個腳手架工具上二次開發(fā) create-react-app腳手架 生成的 package.json中 scripts如下: 我們看到分別是項目的啟動開發(fā)環(huán)境,構建,測試的

    2024年02月10日
    瀏覽(28)
  • 使用 create-react-app 搭建項目ts+less+antd+redux+router+eslint+prettier+axios

    使用 create-react-app 搭建項目ts+less+antd+redux+router+eslint+prettier+axios

    當前市面上有很多前端框架或者模板、如:umi、dva、antd-design-pro、create-react-app 等一些框架或者模板。 create-react-app 是 react 官方提供的,相對來說比較干凈一些。 此項目是在 create-react-app 的基礎上進行搭架、項目采用 ts 語法 項目整體上會添加上以下功能: 完整項目代碼 傳

    2024年02月03日
    瀏覽(29)
  • 1-07 React配置postcss-px-to-viewport

    1-07 React配置postcss-px-to-viewport

    移動端適配 安裝依賴:在項目根目錄下運行以下命令安裝所需的依賴包: 配置代碼 重新啟動開發(fā)服務器:如果你的開發(fā)服務器正在運行,請重新啟動它以應用新的配置。 之后當我們寫px時會自動轉換成vm單位

    2024年02月08日
    瀏覽(23)
  • React導航守衛(wèi)(V5路由)

    下載: 當我們進行路由跳轉的時候,有時候需要滿足某種條件才能跳轉,比如我只有我們登錄成功之后才能到首頁面,否則就不能到首頁面,這時候我們就需要對路由進行攔截。 例如: (1)當我們登錄的時候存儲一個會話存儲 (2)然后我們給訪問頁面添加一個判斷 //封裝一個判

    2024年01月19日
    瀏覽(30)
  • uni-app px與rpx的轉換

    第一種轉換方法: 由rpx的微信官方介紹可知 rpx(responsive pixel): 可以根據(jù)屏幕寬度進行自適應。規(guī)定屏幕寬為750rpx。 如在 iPhone6 上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。 由此得知是以750物理像素為基準: px / rpx = screen

    2024年02月11日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包