久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

解決React官方腳手架不支持Less的問題

說在前面

create-react-app是由 React 官方提供并推薦使用構建新的 React 單頁面應用程序的最佳方式,不過目前版本(1.5.x)其構建的項目中默認是不支持動態樣式語言Less的。如果我們的項目必須要使用 Less 呢,這就需要我們手動集成一下。本篇主要針對集成的過程做一個簡要記錄。

環境準備

本小節先用 create-react-app 構建一個全新的 React 項目作為實驗環境。

如果您之前未曾使用過 create-react-app,請先通過如下命令全局安裝(假定您本機已經安裝了 Node.js):

  npm install -g create-react-app

然后,通過如下命令構建一個新的項目my-app:

  npx create-react-app my-app

通過cd my-app命令進入項目文件夾,執行yarn start命令啟動程序,成功運行,則實驗環境準備完畢。

最終項目結構:

  ┌─node_modules   ├─public  ├─src             ├─.gitignore  ├─package.json  ├─README.md  └─yarn.lock

安裝 less & less-loader

要使 create-react-app 構建的項目能正常解析 less 文件,只需要讓webpack能夠把 less 文件編譯成 css 文件即可。

所以,首先要把 less 和less-loader(less 編譯器)添加到項目中:

  yarn add less less-loader

這樣就 OK 了?以上只是在項目中安裝了 less 和 less-loader ,但還未曾通過 webpack 使用 less-loader。

至于怎么使用?幾種使用方式?請參見webpack 文檔,這里不再贅述。

假定您已經仔細閱讀過上述 webpack 文檔,想必您也清楚我們應該選擇在webpack.config.js文件中配置 less-loader。

暴露 webpack 配置文件

突然,您會發現在我們實驗項目中找不到 webpack 相關配置文件。

因為腳手架為了實現“零配置”,會默認把一些通用的腳本和配置集成到react-scripts,目的是讓我們專注于src目錄下的開發工作,不再操心環境配置。同時,被其集成的腳本和配置也會從程序目錄中消失 ,程序目錄也會變得干凈許多。

如果我們要自定義環境配置怎么辦?

項目構建完成后,會提供一個命令yarn eject,通過這個命令,我們可以把被 react-scripts 集成的配置和腳本暴露出來。

以下是腳手架關于yarn eject命令的介紹:

yarn ejectRemoves this tool and copies build dependencies, configuration files and scripts into the app directory. If you do this, you can’t go back!

大概意思是,執行該命令后會把已構建依賴項、配置文件和腳本復制到程序目錄中。該操作是不可逆轉的,執行完成后會刪除這個命令,也就是說只能執行一次。

至于 react-scripts 都集成了哪些東西,通過yarn eject命令的執行記錄也能看出個大概:

  λ yarn eject  yarn run v1.6.0  $ react-scripts eject   Are you sure you want to eject This action is permanent. Yes  Ejecting...    Copying files into E:Reactmy-app    Adding configenv.js to the project    Adding configpaths.js to the project    Adding configpolyfills.js to the project    Adding configwebpack.config.dev.js to the project    Adding configwebpack.config.prod.js to the project    Adding configwebpackDevServer.config.js to the project    Adding configjestcssTransform.js to the project    Adding configjestfileTransform.js to the project    Adding scriptsbuild.js to the project    Adding scriptsstart.js to the project    Adding scriptstest.js to the project    Updating the dependencies    Removing react-scripts from dependencies    Adding autoprefixer to dependencies    Adding babel-core to dependencies    Adding babel-eslint to dependencies    Adding babel-jest to dependencies    Adding babel-loader to dependencies    Adding babel-preset-react-app to dependencies    Adding babel-runtime to dependencies    Adding case-sensitive-paths-webpack-plugin to dependencies    Adding chalk to dependencies    Adding css-loader to dependencies    Adding dotenv to dependencies    Adding dotenv-expand to dependencies    Adding eslint to dependencies    Adding eslint-config-react-app to dependencies    Adding eslint-loader to dependencies    Adding eslint-plugin-flowtype to dependencies    Adding eslint-plugin-import to dependencies    Adding eslint-plugin-jsx-a11y to dependencies    Adding eslint-plugin-react to dependencies    Adding extract-text-webpack-plugin to dependencies    Adding file-loader to dependencies    Adding fs-extra to dependencies    Adding html-webpack-plugin to dependencies    Adding jest to dependencies    Adding object-assign to dependencies    Adding postcss-flexbugs-fixes to dependencies    Adding postcss-loader to dependencies    Adding promise to dependencies    Adding raf to dependencies    Adding react-dev-utils to dependencies    Adding resolve to dependencies    Adding style-loader to dependencies    Adding sw-precache-webpack-plugin to dependencies    Adding url-loader to dependencies    Adding webpack to dependencies    Adding webpack-dev-server to dependencies    Adding webpack-manifest-plugin to dependencies    Adding whatwg-fetch to dependencies    Updating the scripts    Replacing "react-scripts start" with "node scripts/start.js"    Replacing "react-scripts build" with "node scripts/build.js"    Replacing "react-scripts test" with "node scripts/test.js"    Configuring package.json    Adding Jest configuration    Adding Babel preset    Adding ESLint configuration    Ejected successfully!    Please consider sharing why you ejected in this survey:    http://goo.gl/forms/Bi6CZjk1EqsdelXk1    Done in 5.37s.

說了這么多,現在怎樣才能在我們的項目中暴露 webpack 的配置文件?沒錯,你沒猜錯,只需要運行一下yarn eject即可。

再來看我們的實驗項目的目錄,您會發現其中多了一個config文件夾,其中就有三個關于 webpack 的配置文件:

  webpack.config.dev.js       # 開發環境配置  webpack.config.prod.js      # 生產環境配置  webpackDevServer.config.js  # 開發服務器配置

我們需要關注的是前兩個,最后一個是關于本地開發服務器http://localhost:3000的一些相關配置。

修改 webpack 配置

理論上講,需要同步修改webpack.config.dev.js和webpack.config.prod.js配置文件:

在module.rules節點中找到 css 文件的加載規則:

test: /.css$/修改為test: /.(css|less)$/;在use數組最后新增一個對象元素{loader: require.resolve('less-loader')}。

修改完成后:

  // "postcss" loader applies autoprefixer to our CSS.  // "css" loader resolves paths in CSS and adds assets as dependencies.  // "style" loader turns CSS into JS modules that inject 

至此,就已經完成了create-react-app 對 Less 的支持。

效果驗證

最后,在我們的實驗項目中驗證一下配置是否生效。

首先在src根目錄下使用 Less 語法創建一個 less 文件,取名為Test.less:

  @title-color:#f00;    .App-title {      color: @title-color    }

然后在App.js文件中通過如下API導入上述的 less 文件:

  import './Test.less';

再次yarn start運行我們的程序,如果標題Welcome to React變成紅色則說明配置沒有問題。

解決React官方腳手架不支持Less的問題

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产精品久av福利在线观看| 久久国产直播| 一本一道久久a久久精品蜜桃| 一区二区三区四区日本视频| 青青青国产精品| 91精品啪在线观看国产爱臀| 日韩av中文字幕一区| 亚洲三级网站| 欧美伊人久久| 精品一区视频| 福利一区二区| 久久久一二三| 精品国产精品国产偷麻豆| 欧美激情久久久久久久久久久| 老牛国内精品亚洲成av人片| 成人黄色av| 久久精品91| 不卡av一区二区| 麻豆精品网站| 日韩三级精品| 国产毛片精品| 中国字幕a在线看韩国电影| 久久中文亚洲字幕| 美国欧美日韩国产在线播放| 亚洲香蕉久久| 青青国产精品| 色乱码一区二区三区网站| 久久精品伊人| 九九久久电影| 亚洲精品看片| 国内揄拍国内精品久久| 国产专区一区| 日韩激情中文字幕| 欧美激情另类| 三级欧美韩日大片在线看| 国产欧美成人| 欧美日韩一二三四| 婷婷精品久久久久久久久久不卡| 国产精品17p| 欧美日韩激情| 国产精品v亚洲精品v日韩精品| 99久精品视频在线观看视频| 亚洲综合精品四区| 欧美黄色精品| 亚洲制服少妇| 久久女人天堂| 视频一区二区中文字幕| 激情中国色综合| 蜜桃av一区二区| 国产精品99在线观看| 一区久久精品| 卡一精品卡二卡三网站乱码| 日韩视频精品在线观看| 国产欧美大片| 欧美在线亚洲| 日韩三级久久| 日韩不卡视频在线观看| 99日韩精品| 日韩精选在线| 免费观看不卡av| 在线亚洲精品| 捆绑调教美女网站视频一区| 国产一区导航| 9999国产精品| 国产精品任我爽爆在线播放| 视频一区二区欧美| 久久久精品日韩| 国产精品99精品一区二区三区∴| 日韩专区在线视频| 久久理论电影| 成人午夜毛片| 国产精品三p一区二区| 99热精品久久| 精品三级av| 国产精品伦一区二区| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲涩涩av| 久久中文字幕av| 精品久久久久中文字幕小说| 国产亚洲人成a在线v网站| 亚洲精品麻豆| 日韩中文字幕区一区有砖一区| 久久精品二区三区| 美女国产精品久久久| 日韩精品欧美大片| 蜜桃久久精品一区二区| 性欧美69xoxoxoxo| 欧美日韩水蜜桃| 久久久久国产精品一区二区| аⅴ资源天堂资源库在线| 精品国产亚洲一区二区在线观看| 国产精品毛片久久久| 国产欧美一区二区三区米奇| 91亚洲无吗| 亚洲精品一二三**| 亚洲区第一页| 婷婷视频一区二区三区| 日韩一二三区在线观看| 91久久亚洲| 国产精品7m凸凹视频分类| 91精品国产91久久久久久黑人| 日韩福利一区| 四虎4545www国产精品| 99精品电影| 日韩午夜高潮| 日韩在线一区二区| 亚洲综合福利| 无码日韩精品一区二区免费| 日韩av不卡一区二区| 日本午夜精品| 国产欧美成人| 国产精品国产一区| 另类专区亚洲| 播放一区二区| 亚洲精品网址| 日本亚洲最大的色成网站www| 国产精品一区二区精品| 国产成人免费av一区二区午夜| 日本少妇一区| 亚洲激情欧美| 日韩精选在线| 国产精品综合| 麻豆mv在线观看| 久久狠狠婷婷| 婷婷成人av| 久久一区亚洲| 日韩精品午夜| 美国欧美日韩国产在线播放| 清纯唯美亚洲综合一区| 亚洲欧洲日韩| 精品视频一区二区三区在线观看| 精精国产xxxx视频在线播放| 99热精品在线| 国产精品a久久久久| 群体交乱之放荡娇妻一区二区| 夜夜嗨一区二区三区| 国产无遮挡裸体免费久久| 麻豆mv在线观看| 综合激情在线| 91中文字幕精品永久在线| 91久久亚洲| 国产精品nxnn| 国产精品7m凸凹视频分类| 日韩精品免费一区二区夜夜嗨 | 久久久久久婷| 国产麻豆综合| 精品国产成人| 午夜在线精品| 精品亚洲成人| 在线精品小视频| 国产精选久久| 国产精品88久久久久久| 欧美日韩网址| 欧美91福利在线观看| 国产亚洲一区二区三区啪| 久久久久久自在自线| 免费人成在线不卡| 成人污污视频| 亚洲精品黄色| 91精品国产福利在线观看麻豆| 日韩精品久久理论片| 蜜桃av在线播放| 亚洲精品伦理| 欧美日韩视频网站| 性色一区二区| 国产一区2区在线观看| 婷婷综合一区| 不卡中文字幕| 精品久久久网| 亚洲精品乱码久久久久久蜜桃麻豆| 精品国产亚洲一区二区三区| 亚洲免费一区二区| 欧美国产美女| 欧美黑人做爰爽爽爽| 亚洲综合福利| 欧美久久精品一级c片| 精品成人18| 欧美久久精品| 蜜臀国产一区二区三区在线播放| 麻豆国产在线| 国产精品久久久久久久久久白浆 | 久久国产乱子精品免费女| aⅴ色国产欧美| 成人在线视频区| 日韩av网站免费在线| 国产精品日韩| 欧美综合另类| 欧美日韩国产观看视频| 国产精品免费大片| 亚洲人成高清| 免费视频最近日韩| 日韩午夜电影| 图片区亚洲欧美小说区| 精品日韩视频| 国模精品一区| 国产一区二区三区四区大秀| 国产精品xxx在线观看| 免费的成人av| 91成人网在线观看| 久久美女性网|