模板項目搭建

  1. create-react-app 創(chuàng)建項目, npm run eject 彈出配置

  2. 替換eslint 規(guī)則為 airbnb

  1. 增加組件熱更新
    -安裝依賴
    https://github.com/gaearon/react-hot-loader/
  1. 增加 Ant Design for React
  1. 增加less支持, 主要是為了antd 的定制主題+按需加載
  • 使用社區(qū)方案
  • https://medium.com/@GeoffMiller/how-to-customize-ant-design-with-react-webpack-the-missing-guide-c6430f2db10f
    • 安裝 less-vars-to-js , 把less變量引入到 less-loader 中做變量替換
      npm install less-vars-to-js --save-dev
    • 安裝 less 與 less-loader
      npm install less less-loader --save-dev
    • 在根目錄新建文件 ant-theme-vars.less
      內(nèi)容為替換主題的變量(例如):
      // Available theme variables can be found in
      // https://github.com/ant-design/ant-design/blob/master/components/style/themes/default.less
      
      @primary-color: #eec988; //<-- our first ant theme override!
      
    • 在config目錄新建文件: antd.theme.js, 內(nèi)容如下:
      const path = require('path');
      const fs = require('fs');
      const lessToJs = require('less-vars-to-js');
      const themeVariables = lessToJs(fs.readFileSync(path.join(process.cwd(), './ant-theme-vars.less'), 'utf8'));
      
      module.exports = themeVariables;
      
    • 修改config/webpack.config.dev.js 和 config/webpack.config.prod.js, css加載部分配置
      test: /\.(css|less)$/,
              use: [
                require.resolve('style-loader'),
                {
                  loader: require.resolve('css-loader'),
                  options: {
                    importLoaders: 2,
                  },
                },
                {
                  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("less-loader"),
                  options: {
                    "modifyVars": require('./antd.theme'),
                  },
                },
              ],
      
  1. 增加 styled-components, 作為 css-in-js 方案
  • 安裝
    npm install --save styled-components
  • 安裝babel插件
    npm install --save-dev babel-plugin-styled-components
    配置babel, 修改 .babelrc, 增加配置項:
    "plugins": ["babel-plugin-styled-components", {
        "displayName": true
      }]
    
  • 安裝webStrom高亮插件,要求 webStrom 2017.2 以上版本
    https://github.com/styled-components/webstorm-styled-components
  1. add flow

轉(zhuǎn)換為propTypes可以在運行時檢查props類型是否正確, 注意有個坑.
需要寫 class x {props: T; } 和 flow 的語法(class x<T>)不一致 (升級一下 eslint-plugin-react 應(yīng)該可以解決)

  1. eslint + prettier, webStrom 集成 prettier

  2. debugger in IDE

  3. 已增加插件 webpack-dashboard/plugin 推薦使用 electron-webpack-dashboard

// TODO 打包優(yōu)化, common-chunk(公共代碼部分長期緩存), bundle分析, 各種webpack插件的使用
// 發(fā)布部署方案

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天也是有很多故事要講 所以就先把第三天隔過去 以后有機會再講啦。 很幸運的是店長今天排班只給我排了11到16五個...
    IMaDIME閱讀 327評論 0 0
  • 白百何出軌的新聞已經(jīng)刷爆各大媒體,有人調(diào)侃失戀33天的團隊也太牛逼了吧,文章白百何張子萱都挺有能耐。 我記得白百何...
    約里閱讀 887評論 0 2
  • 5月31日《一個廣告人的自白》 【day80盈盈】 當一個廣告人總是盡力站在客戶的角度,以他們的眼光看問題時,不僅...
    蘇小盈閱讀 158評論 0 0
  • 文/田心小妹 -1- 去學(xué)校附近的超市買東西,回來的時候才發(fā)現(xiàn)電動車沒電了。無可奈何的我,只得冒著炎炎烈日,花了二...
    田心小妹閱讀 664評論 4 14

友情鏈接更多精彩內(nèi)容