<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      omi-cli新版發布-升級webpack2和支持sass生成組件局部CSS

      2017-03-16 08:32  【當耐特】  閱讀(1942)  評論(0)    收藏  舉報

      寫在前面

      omi-cliOmi的命令行工具。在v0.1.X以及之前版本中,生成出來的項目腳手架
      是基于webpack1的。由于:

      • webpack1不支持tree-shaking,webpack2 支持tree-shaking
      • webpack1不支持 sass-loader,webpack2 支持sass-loader

      tree-shaking 作用是移除沒有使用的代碼有效的減小包體積
      sass-loader 可以讓你把sass轉成css,在omi項目里可以把sass轉成組件的局部CSS

      所以,果斷把omi-cli的項目模板升級為基于webpack2。感興趣的同學可以立馬嘗試下。

      $ npm install omi-cli -g       //安裝cli
      $ omi init your_project_name   //初始化項目
      $ cd your_project_name         //轉到項目目錄
      $ npm run dev                  //開發
      $ npm run dist                 //部署發布
      

      采坑之路

      在升級的過程中遇到了不少問題,這里記錄一下。

      問題1

      webpack2中,CommonsChunkPlugin不再支持上面的傳參形式,必須傳JSON形式。

      問題2

      webpack2中,不在允許省略-loader的形式標記loader,如:

       {test: /\.html$/, loader: "string"},
      

      都要改成:

       {test: /\.html$/, loader: "string-loader"},
      

      問題3

      使用webpack-stream的同學可能會碰到上面這個錯誤。找了好久發現:

      在gulp里要修改下第二個參數,把 null 改成 require('webpack')。

      sass生成組件局部CSS

      在傳統的webpack項目腳手架中,都會包含css相關的三個loader:

      // webpack.config.js
      module.exports = {
          ...
          module: {
              rules: [{
                  test: /\.scss$/,
                  use: [{
                      loader: "style-loader" // creates style nodes from JS strings
                  }, {
                      loader: "css-loader" // translates CSS into CommonJS
                  }, {
                      loader: "sass-loader" // compiles Sass to CSS
                  }]
              }]
          }
      };
      
      • sass-loader負責把sass編譯成css
      • css-loader負責把編出來的css轉成CommonJS模塊用于js里面進行require獲取
      • style-loader負責把css插入到頁面的head里面

      那么問題來了?Omi內部本身組件可以定義style方法,如:

      class Hello extends Omi.Component {
      	   ...	
           style () {
            return  `
                h1{
                	cursor:pointer;
                }
            `;
          }
           ...
      }
      

      在Omi內部的管線里面,會把執行style方法,把返回的css轉成局部css,然后插入到頁面的head里面。所以和webpack三個loader里的管線有沖突!怎么解決?去掉一個loader便可!

      // webpack.config.js
      module.exports = {
          ...
          module: {
              rules: [{
                  test: /\.scss$/,
                  use: [{
                      loader: "css-loader" // translates CSS into CommonJS
                  }, {
                      loader: "sass-loader" // compiles Sass to CSS
                  }]
              }]
          }
      };
      

      我們只需要能夠在js里動態獲取到編譯好的css字符串,然后拼在style方法里便可!兩個管線就打通了!具體代碼:

      import Omi from 'omi';
      
      const style = require('./index.scss');
      
      class Header extends Omi.Component {
      	...
          style () {
              return style.toString();
          }
      	...
      }
      
      export default Header;
      

      這里需要注意require到的style不是字符串對象,需要執行toString才能獲取到css字符串。

      相關

      • Omi的Github地址https://github.com/AlloyTeam/omi
      • 如果想體驗一下Omi框架,可以訪問 Omi Playground
      • 如果想使用Omi框架或者開發完善Omi框架,可以訪問 Omi使用文檔
      • 如果你想獲得更佳的閱讀體驗,可以訪問 Docs Website
      • 如果你懶得搭建項目腳手架,可以試試 omi-cli
      • 如果你有Omi相關的問題可以 New issue
      • 如果想更加方便的交流關于Omi的一切可以加入QQ的Omi交流群(256426170)

      主站蜘蛛池模板: 成在线人免费视频| 欧洲中文字幕国产精品| 无码少妇一区二区三区免费| 色综合中文字幕色综合激情| 国内精品无码一区二区三区| 亚洲精品日韩在线丰满| 综合偷自拍亚洲乱中文字幕 | japanese无码中文字幕| 国产一区二区视频在线看| 和龙市| 色吊丝二区三区中文字幕| 国产成人亚洲综合图区| 国语自产少妇精品视频蜜桃| 成人国产精品免费网站| 精品少妇无码一区二区三批| 精品一卡2卡三卡4卡乱码精品视频| 亚洲午夜性猛春交xxxx| 亚洲av不卡电影在线网址最新| 五月天久久综合国产一区二区| 鲁丝片一区二区三区免费| 91老熟女老女人国产老| 日韩有码中文在线观看| 毛片av在线尤物一区二区| 亚洲一二区在线视频播放| 精品久久久久久无码免费| 国产不卡av一区二区| 午夜成人性爽爽免费视频| 色老99久久九九爱精品| 粉嫩jk制服美女啪啪| 久久这里只精品热免费99| 久久国产精品亚洲精品99| 国产裸体美女视频全黄| 人人人澡人人肉久久精品| 国产精品亚洲五月天高清| 国产成人高清亚洲综合| 口爆少妇在线视频免费观看| 中文字幕亚洲综合第一页| 口爆少妇在线视频免费观看| 国内揄拍国内精品少妇国语| 亚州中文字幕一区二区| 牛牛视频一区二区三区|