欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何使用create-react-app添加cssmodules、sasss和antd

小編給大家分享一下如何使用create-react-app添加css modules、sasss和antd,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司十余年經(jīng)驗成就非凡,專業(yè)從事成都網(wǎng)站制作、網(wǎng)站建設(shè),成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文推廣廣告投放等。十余年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來電!

create-react-app 是facebook的官方腳手架,對于個人開發(fā)者和中小型公司快速創(chuàng)建項目非常推薦。react的CSS解決方案有很多,這里我技術(shù)選型時用 css modules 和 sass ,然后配合antd使用通用組件庫。但是create-react-app原生并不支持 css modules 和 sass ,所以需要額外配置。

配置

增加css modules和sass

使用eject暴露配置

create-react-app 默認(rèn)是沒有暴露 webpack 配置的,所以需要eject一下。注意如果項目在git倉庫環(huán)境下,先提交代碼到git倉庫,否則會報錯

npm run eject

npm添加css modules和sass

npm install react-css-modules 
npm install sass-loader node-sass

這里安裝sass可能會遇到墻的問題報錯,所以要么使用cnpm或者使用本地代理設(shè)置,因為我有ss所以使用本地代理

// 開啟代理
npm config set proxy http://127.0.0.1:1080
// 安裝完sass后關(guān)閉代理
npm config delete proxy

webpack配置

重點來了,我們需要給 webpack 配置上 css-modules 和 sass-loader 。但是使用 css-modules 會使 node_modules 庫里的css樣式找不到,比如后面要使用到的antd,這個時候我們需要inclube來排除影響 node_modules ,使得 css-modules 不會影響到 node_modules

修改項目中 config 目錄下的 webpack.config.dev.js 和 webpack.config.prod.js ,說明下這兩個文件,前一個是開發(fā)環(huán)境 npm start 使用,后一個是 npm run build 打包后使用

修改 webpack.config.dev.js :

大約在160行左右,找到 test: /\.css$/ ,中文注釋的地方就是修改和增加的地方

{
      test: [/\.css$/, /\.scss$/],// 這里增加SCSS的支持
      exclude: [/node_modules/],// 這里去排除node_modules,防止css modules影響到node_modules
      use: [
       require.resolve('style-loader'),
       {
        loader: require.resolve('css-loader'),
        options: {
         importLoaders: 1,
         modules: true, // 這里增加對css modules的支持
         localIdentName: '[name]__[local]__[hash:base64:5]' //這里增加對css modules的支持
        },
       },
       {
        loader: require.resolve('sass-loader'), // 這里增加sass的支持
       },
       {
        loader: require.resolve('postcss-loader'),
        options: {
         // Necessary for external CSS imports to work
         // https://github.com/facebookincubator/create-react-app/issues/2677
         ident: 'postcss',
         plugins: () => [
          require('postcss-flexbugs-fixes'),
          autoprefixer({
           browsers: [
            '>1%',
            'last 4 versions',
            'Firefox ESR',
            'not ie < 9', // React doesn't support IE8 anyway
           ],
           flexbox: 'no-2009',
          }),
         ],
        },
       },
      ],
     },
     // 因為上面排除了css_modules所以這里一定要再添加個排除src來識別css_modules
     // 其實就是復(fù)制之前沒修改前的所有,再增加一個exclude: [/src/]
     {
      test: /\.css$/, 
      exclude: [/src/], // 這里添加排除src,
      use: [
       require.resolve('style-loader'),
       {
        loader: require.resolve('css-loader'),
        options: {
         importLoaders: 1,
        },
       },
       {
        loader: require.resolve('postcss-loader'),
        options: {
         // Necessary for external CSS imports to work
         // https://github.com/facebookincubator/create-react-app/issues/2677
         ident: 'postcss',
         plugins: () => [
          require('postcss-flexbugs-fixes'),
          autoprefixer({
           browsers: [
            '>1%',
            'last 4 versions',
            'Firefox ESR',
            'not ie < 9', // React doesn't support IE8 anyway
           ],
           flexbox: 'no-2009',
          }),
         ],
        },
       },
      ],
     }

修改 webpack.config.prod.js :

和上面修改 webpack.config.dev.js 類似

{
      test: [/\.css$/, /\.scss$/], // 這里增加SCSS的支持
      exclude: [/node_modules/], // 這里去排除node_modules
      loader: ExtractTextPlugin.extract(
       Object.assign(
        {
         fallback: {
          loader: require.resolve('style-loader'),
          options: {
           hmr: false,
          },
         },
         use: [
          {
           loader: require.resolve('css-loader'),
           options: {
            importLoaders: 1,
            minimize: true,
            sourceMap: true,
            modules: true, // 這里添加css modules支持
           },
          },
          {
           loader: require.resolve('postcss-loader'),
           options: {
            // Necessary for external CSS imports to work
            // https://github.com/facebookincubator/create-react-app/issues/2677
            ident: 'postcss',
            plugins: () => [
             require('postcss-flexbugs-fixes'),
             autoprefixer({
              browsers: [
               '>1%',
               'last 4 versions',
               'Firefox ESR',
               'not ie < 9', // React doesn't support IE8 anyway
              ],
              flexbox: 'no-2009',
             }),
            ],
           },
          },
          {
           loader: require.resolve('sass-loader'), // 這里添加sass支持
          }
         ],
        },

        extractTextPluginOptions
       )
      ),
      // Note: this won't work without `new ExtractTextPlugin()` in `plugins`.
     },
     {
      test: /\.css$/,
      exclude: [/src/], // 排除src
      loader: ExtractTextPlugin.extract(
       Object.assign(
        {
         fallback: {
          loader: require.resolve('style-loader'),
          options: {
           hmr: false,
          },
         },
         use: [
          {
           loader: require.resolve('css-loader'),
           options: {
            importLoaders: 1,
            minimize: true,
            sourceMap: true,
           },
          },
          {
           loader: require.resolve('postcss-loader'),
           options: {
            // Necessary for external CSS imports to work
            // https://github.com/facebookincubator/create-react-app/issues/2677
            ident: 'postcss',
            plugins: () => [
             require('postcss-flexbugs-fixes'),
             autoprefixer({
              browsers: [
               '>1%',
               'last 4 versions',
               'Firefox ESR',
               'not ie < 9', // React doesn't support IE8 anyway
              ],
              flexbox: 'no-2009',
             }),
            ],
           },
          }
         ],
        },

        extractTextPluginOptions
       )
      ),
      // Note: this won't work without `new ExtractTextPlugin()` in `plugins`.
     }

安裝antd和配置

主要是安裝配置 antd 和 babel-plugin-import ,這樣可以使得 antd 按需加載樣式

npm添加antd和babel-plugin-import

npm install antd
npm install babel-plugin-import

配置babel

在項目根目錄下增加 .babelrc 文件,然后配置如下

{
 "presets": [
  "react-app"
 ],
 "plugins": [
  "transform-runtime",
  [
   "import",
   {
    "libraryName": "antd",
    "style": "css"
   }
  ]
 ]
}

以上是“如何使用create-react-app添加css modules、sasss和antd”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文名稱:如何使用create-react-app添加cssmodules、sasss和antd
文章路徑:http://aaarwkj.com/article12/iijjdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、手機網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站、網(wǎng)站制作、Google域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
国产传媒网站在线观看| 91九色国产在线视频| 国产精品自拍小视频91| 日韩精品毛片在线看| 正在播放蜜臀av在线| av亚洲天堂免费观看| 黄色三级视频一区二区三区| 久久偷拍女生厕所尿尿| 亚洲av综合色区一区| 四虎最新永久在线网站| 国产我和子的乱视频亲生| 一本之道高清久久久首页| 中文字幕亚洲精品乱码在线| 亚洲最大午夜福利视频| 国产午夜18久久久| 国产精品欧美一区二区视频| 2021天天操夜夜爽| 日韩一区二区三区不卡| 亚洲女同另类在线播放视频| 亚洲一区二区三区国色天香| 成人中文字幕av电影| 成人性生交大片免费看久久| 日韩中文字幕不卡免费| 亚洲熟乱熟女一区二区| 亚洲国产熟女导航网站视频| 激情五月综合开心五月| 日本在线免费成人高清| 久久久久久亚洲精品少妇| 国产精品一区二区麻豆本子| 人妻巨乳一区二区三区| 成人在线视频国产自拍| 欧美大片免费在线播放| 国产区av中文字幕在线观看| 国产老熟女高潮精品视频网站免费 | 久久精品国产一区二区三| 97热久久精品中文字幕一区| 亚洲欧美一区二区中文字幕| 日韩视频看看色网站| 97在线资源视频播放| 日本韩国三级理伦久久久| 最新日本人妻中文字幕|