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

如何使用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è)
亚洲欧美中文字幕乱码| 亚洲美女毛茸茸的逼逼| 亚洲视频精品一区二区三区| 成人深夜免费观看视频| 成年人收看黄色一二级片| 中文字幕日本人妻影视| 日本在线观看高清区一区二| 欧美日韩另类激情免费| 97超碰国产在线观看| 成人国产精品三上悠亚久久| 黄片欧美精品在线观看| 高清av中文免费在线| 青青草成人公开在线视频| 俄罗斯少妇毛茸茸的高潮| 国产精品毛片视频一区二区| 久久久精品在线免费视频| 欧美日本国产老熟女视频| 亚洲一区二区三区三洲| 国产精品国产三级国av麻豆| av国语对白在线观看| 欧美日韩性视频播放器| 日本一级二级三级在线看| 国产精品三级av在线播放| 99久久中文字幕伊人| 密臀精品国产一区二区| 日韩电影中文字幕一区| 九色国产一区二区三区| 成人黄性视频免费网看| 91欧美精品一区二区| 欧美一级黄色免费电影| 久久国产精品99久久久| 亚洲熟女av综合网五月| 久久国产欧美日韩精品| 黄片免费在线播放欧美| 久久精品色一情一乱一伦| 日韩传媒在线观看视频| 亚洲av色网在线观看| 精品人妻一区三区蜜桃| 一区二区久久精品视频| 婷婷精品国产欧美精品亚洲| 久久99久久久久久精品|