国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PostCSS自學(xué)筆記(一)【安裝使用篇】

jsummer / 3713人閱讀

摘要:而則可制定個(gè)人需求的一套解決方案僅安裝需要的插件。迫不及待的你已經(jīng)等不及安裝使用了吧。安裝及使用一般是結(jié)合自動(dòng)化工具使用,如果要多帶帶使用可以安裝,這里我先對的安裝使用講解下。接下來說點(diǎn)實(shí)際的,如何利用結(jié)合自動(dòng)化工作在項(xiàng)目中使用。

PostCSS介紹

PostCSS是一個(gè)利用JS插件來對CSS進(jìn)行轉(zhuǎn)換的工具,這些插件非常強(qiáng)大,強(qiáng)大到無所不能。其中,Autoprefixer就是眾多PostCSS插件中最流行的一個(gè)。

截至目前(2017年7月)PostCSS已經(jīng)有超過200個(gè)插件,你可以插件列表查找有沒有你所需要的插件。如果你想自己寫個(gè)插件,據(jù)說這是一個(gè)不錯(cuò)的主意,而且非常簡單(前提掌握node.js,不過我還沒學(xué)會呢),你可以試著搞點(diǎn)事。

看到這里,你可能沒有發(fā)現(xiàn)它的強(qiáng)大之處,甚至我自己都沒有被我翻譯的這段官方文字所打動(dòng)。因?yàn)闆](wǒ)有(yě)對(bù)比(tài)就(huì)沒(yòng)有(zhè)傷(wán)害(yì)。好了,是時(shí)候啟動(dòng)裝逼模式了。

維基百科,阿里巴巴,谷歌,Wordpress,Twitter等網(wǎng)站均有使用,大佬們都在用你有什么理由不跟上步伐。

再來看看這張PostCSS下載數(shù)量的npm-stat統(tǒng)計(jì)表(數(shù)據(jù)證明一切):

學(xué)習(xí)PostCSS之前需要了解一些事情:

PostCSS插件的處理方式類似那些CSS預(yù)處理器,而非預(yù)處理器和后處理器(PostCSS is Not a Pre-processor and Not a Post-processor either)

PostCSS is Not “Future Syntax”(不是新式/未來語法?不知道怎么翻譯)

PostCSS本身并非整理或優(yōu)化CSS的工具

PostCSS可以完成很多意想不到的事情,例如用postcss-rtl惡搞一下?

那么它還有一些特性,例如創(chuàng)建了一個(gè)插件功能極強(qiáng)的生態(tài)系統(tǒng),具有模塊化需要什么用什么(precss就是一個(gè)集成了類似SASS很多方法的包),相比其他的CSS預(yù)處理器它的優(yōu)勢主要體現(xiàn)在以下幾個(gè)方面:

擁有極高的處理性能(3倍以上的處理速度)

你既可以寫正常的CSS,也可以結(jié)合LESS或者SASS一起編寫

對Source Map支持更好

他的插件真的太多太強(qiáng)大太便利了

其他對比SASS和LESS的區(qū)別在于他們內(nèi)置了大量的方法,而也許你只需要用到幾個(gè)變量而已,大材小用。而PostCSS則可制定個(gè)人需求的一套解決方案(僅安裝需要的插件)。這也就是他高性能的主要原因。幾乎SASS和LESS有的功能全都有!

總之好處太多了。這里就不一一列舉了。迫不及待的你已經(jīng)等不及安裝使用了吧。

PostCSS安裝及使用

PostCSS一般是結(jié)合自動(dòng)化工具使用,如果要多帶帶使用可以安裝PostCSS CLI,這里我先對PostCSS CLI的安裝使用講解下。Windows下安裝(文中操作全部基于WINDOWS環(huán)境):

npm i -g postcss-cli或者npm i --save-dev postcss-cli

CLI是否建議全局安裝?(這樣包括其對應(yīng)的插件都要全局了?如果不全局就失去了CLI的意義了?)。全局安裝完成后,試著輸入PostCSS,出現(xiàn)以下結(jié)果,說明安裝OK

不過我個(gè)人習(xí)慣僅安裝在項(xiàng)目中,于是我沒有選擇安裝CLI,而是直接在項(xiàng)目中安裝PostCSS,npm i --save-dev postcss,我這里有個(gè)例子可以看看

接下來,我們還做不了什么,我們需要安裝一些插件配合PostCSS,例如,我現(xiàn)在安裝一個(gè)autoprefixer

npm install --save-dev autoprefixer,并參考例子中的style01.css,我要通過PostCSS對它進(jìn)行處理。這里兩個(gè)方法:

通過cd node_modules/.bin/進(jìn)入node_modules/.bin/目錄內(nèi)再執(zhí)行

postcss ../../src/style01.css -o ../../dist/output_style01.css -u autoprefixer

通過修改package.json中的scripts,增加一條postcss命令

"postcss:style01": "postcss ./src/style01.css -o ./dist/output_style01.css -u autoprefixer"

然后再回到根目錄(postcss-study目錄)下執(zhí)行

npm run postcss:style01

兩者效果相同,當(dāng)然我傾向于后者啦。完成后一條鮮亮的綠色的讓人安全感十分強(qiáng)列的提示語出現(xiàn)了√ Finished ...前面還有個(gè)sweet的勾勾,請看編譯后的output_style01.css聰明的你一定能舉一反三的。做出更多驚奇的事情的~

另外我們可以同樣的采用Parser插件來編譯樣式文件(當(dāng)然我實(shí)際上是不會用sugarss的,如果你習(xí)慣用sass請安裝postcss-scss),我的DEMO里面請參考style02.sss文件的編譯。這里就不多說了。

還有一種預(yù)先寫好配置文件,這個(gè)就稍微先進(jìn)一些,也不會看起來很亂。我們創(chuàng)建一個(gè)postcss.config.js文件:

module.exports = {
  parser: "sugarss",
  plugins: [
    require("autoprefixer")
  ]
}

不過這種經(jīng)過我個(gè)人測試,僅適用于全局安裝了PostCSS-CLI和sugarss的情況下再該配置文件目錄下執(zhí)行postcss ./src/style02.sss -o ./dist/test.css命令就好了。這里個(gè)人不是很推薦。關(guān)于CLI下的一些方法暫時(shí)就不多說了,如有錯(cuò)誤請各位大佬指正~?

PostCSS主要插件說明和介紹

官方對于插件根據(jù)用途做了分類,主要有以下幾個(gè)類別:

解決全局CSS問題

使用未來的CSS語法

編寫可讀性更好的CSS

用于圖片和字體

CSS語法檢查

其他

以上內(nèi)容主要是用來熟悉一下PostCSS的。接下來說點(diǎn)實(shí)際的,如何利用PostCSS結(jié)合自動(dòng)化工作在項(xiàng)目中使用。

PostCSS結(jié)合Webpack應(yīng)用

關(guān)于webpack基礎(chǔ)配置的相關(guān)內(nèi)容這里就不多說了~前面已有大神寫了有興趣可以膜拜一下。

我們先來創(chuàng)建一個(gè)項(xiàng)目目錄,結(jié)構(gòu)如下:(style0*.css作為我測試的文件,后面可能增加)

|– dist
|– src
| |– images
| | |– postcss-00.png
| | |– postcss-01.png
| – index.js
| – index.html
| – style04.sss
|– postcss.config.js
|– webpack.config.js
|– package.json

接下來安裝依賴包:

npm i -D postcss-loader style-loader css-loader webpack webpack-dev-server

然后修改已下文件,請仔細(xì)閱讀?

package.json

"scripts": {
  "start": "webpack-dev-server",
  "build": "webpack"
},

先來個(gè)簡單的試試:

webpack.config.js

var path = require("path");
module.exports = {
  entry: {
    index: path.resolve(__dirname, "src/index.js")
  },
  output: {
    filename: "[name].js",
    path: path.resolve(__dirname, "dist")
  },
  module: {
    rules: [{
      test: /.sss$/,
      exclude: /node_modules/,
      use: [{
          loader: "style-loader",
        },
        {
          loader: "css-loader",
          options: {
            importLoaders: 1,
          }
        },
        {
          loader: "postcss-loader"
        }
      ]
    }]
  },
  devServer: {
    contentBase: __dirname,
    compress: true,
    port: 9000,
    inline: true,
    hot: true,
    host: "0.0.0.0",
    disableHostCheck: true
  }
}

postcss.config.js

module.exports = {
  parser: "sugarss",
  plugins: [
    require("precss"),
    require("autoprefixer")
  ]
}

讀完了應(yīng)該發(fā)現(xiàn)此刻運(yùn)行肯定會出錯(cuò)的~因?yàn)檫€沒有安裝其他跟PostCSS相關(guān)的插件呢,于是繼續(xù)安裝:

npm i -D sugarss precss autoprefixer

(插件簡單介紹,sugarss是比較特別的css語法,我尚未了解到這樣寫的好處,僅供大家學(xué)習(xí)參考。precss功能就很強(qiáng)悍了,類似sass的一些功能。autoprefixer就不用多說啦!)

index.html




  
  
  
  這是一個(gè)用于PostCSS測試的頁面


  

this is a container

style04.sss

$blue: #056ef0

.test 
  box-sizing: border-box
  padding: 50px
  border: 10px solid $blue
  width: 200px
  height: 200px

.multiline,
.selector
  box-shadow: 1px 0 9px rgba(0, 0, 0, .4),
              1px 0 3px rgba(0, 0, 0, .6)

基本工作大功告成,開兩個(gè)終端跑兩條命令試試看。

npm run start

npm run build

一切運(yùn)行OK,接下來訪問http://localhost:9000/src/,看起來也都還不錯(cuò)。當(dāng)然寫到這里只是介紹了如何結(jié)合webpack使用PostCSS。而實(shí)際項(xiàng)目應(yīng)用中,我目前還在探索更多實(shí)用的插件,構(gòu)建一個(gè)基本可以替代SASS,LESS等

參考文獻(xiàn):

webpack官方說明:postcss-loader

PostCSS結(jié)合Gulp應(yīng)用

Gulp我用的很少,不是很熟悉,這里結(jié)合官方一些和自己嘗試的DEMO進(jìn)行說明。

我基于之前的代碼來繼續(xù)補(bǔ)充內(nèi)容。

安裝Gulp相關(guān)的包:

npm run i -D gulp gulp-postcss gulp-sourcemaps

增加Gulp配置文件gulpfile.js,頁面index2.html,樣式style05.css,修改package.json的script如下:

gulpfile.js

var postcss = require("gulp-postcss");
var gulp = require("gulp");

gulp.task("css", function () {
  var postcss = require("gulp-postcss");
  var sourcemaps = require("gulp-sourcemaps");

  return gulp.src("src/style05.css")
    .pipe(sourcemaps.init())
    .pipe(postcss([require("precss"), require("autoprefixer")]))
    .pipe(sourcemaps.write("."))
    .pipe(gulp.dest("dist/"));
});

index2.html




  
  
  
  這是一個(gè)用于PostCSS測試的頁面(gulp)
  


  

this is a box

this is another box

style05.css

/* gulp下測試 */
$blue: #056ef0;
.test {
  display: flex;
  color: $blue;
  .box {
    flex: 1;
  }
}

package.json的scripts部分如下

"scripts": {
  "start": "webpack-dev-server",
  "build": "webpack",
  "gulp": "gulp css"
},

一切就緒后,我們來執(zhí)行偉大的命令了:

npm run gulp

我的電腦等待了約1.26s~1.29s,提示finish啦~

和之前相同,我這里依舊采用了webpack-dev-server啟動(dòng)的服務(wù)器(當(dāng)然這個(gè)又依賴webpack配置,除非你將配置直接寫入package.json內(nèi)),那么你當(dāng)然也可以使用其他自己喜歡的服務(wù)器(例如http-server),我們依舊先啟動(dòng)服務(wù)器npm run start,然后訪問本地http://localhost:9000/src/index2.html就可以看到效果了。或者你也可以直接去看dist目錄內(nèi)生成出來的style05.css文件,一切都是那么美好~

PostCSS學(xué)習(xí)心得及總結(jié)

因?yàn)檫@次學(xué)習(xí),純粹是根據(jù)“教科書”來學(xué),來講解的,因此也就沒有什么真正的精髓,我也是才開始接觸PostCSS,文中有錯(cuò)誤之處還請指正。我希望以后在項(xiàng)目中盡可能的用好PostCSS,再次帶來一篇簡短而有力的文章分享給大家。因時(shí)間和精力有限希望這篇文章能給大家?guī)硇椭D壳澳芟氲降模€有一些未來需要補(bǔ)充的內(nèi)容包括:

sourcemaps

是否有移動(dòng)端基于PostCSS的自適應(yīng)解決方案

自己寫個(gè)可能會比較實(shí)用的插件

結(jié)合postcss-sass究竟有什么好處

postcss對圖片和字體等資源文件處理

暫時(shí)想到這些,如果你還有一些想到的歡迎在下面留言哦?

其他參考文獻(xiàn)匯總:

PostCSS Deep Dive(強(qiáng)烈推薦!我看完了才發(fā)現(xiàn)有部分譯文:PostCSS深入學(xué)習(xí))

PostCSS深入學(xué)習(xí): PostCSS和Sass、Stylus或LESS一起使用

PostCSS 是個(gè)什么鬼東西?

PostCSS一種更優(yōu)雅、更簡單的書寫CSS方式

PostCSS及其常用插件介紹

PostCSS – A Comprehensive Introduction

http://www.cnblogs.com/terrylin/p/5229169.html

相當(dāng)不錯(cuò)的PPT形式

https://ai.github.io/about-postcss/en/

postcss的優(yōu)勢

From Sass to PostCSS

PostCSS – Sass Killer or Preprocessing Pretender?

其他

關(guān)于我個(gè)人的PostCSS一系列學(xué)習(xí), 介紹及總結(jié), 有興趣可以參閱:

PostCSS自學(xué)筆記(一)【安裝使用篇】

PostCSS自學(xué)筆記(二)【插件篇】

PostCSS自學(xué)筆記(二)【番外篇一】

PostCSS自學(xué)筆記(二)【番外篇二】

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/112505.html

相關(guān)文章

  • PostCSS自學(xué)筆記(二)【番外二】

    摘要:之前有研究過做過假設(shè),在插件列表中,的插件執(zhí)行順序自上而下,一切看起來似乎是沒有任何問題的。再有摘自深入設(shè)計(jì)摘自寫的姿勢這兩張圖則應(yīng)該是說明了我之前的假設(shè),插件中的執(zhí)行順序自上而下。先來看看一片來自的這段會不會跟這個(gè)有關(guān)呢,我先埋個(gè)伏筆。 圖解PostCSS的插件執(zhí)行順序 文章其實(shí)是一系列的早就寫完了. 才發(fā)現(xiàn)忘了發(fā)在SegmentFault上面, 最早發(fā)布于https://gitee...

    FleyX 評論0 收藏0
  • PostCSS自學(xué)筆記(二)【插件

    摘要:本期主要介紹以下幾個(gè)插件和幾個(gè)坑和坑這個(gè)就不用多說了,必裝插件之一。看似寫法沒有任何問題。編譯后的結(jié)果那么這樣就沒有問題了。 PostCSS常用插件介紹 繼上一次PostCSS學(xué)習(xí)指南(一)后,漸漸開始在項(xiàng)目中應(yīng)用。 這次決定主要講解一些個(gè)人認(rèn)為非常有幫助的PostCSS插件。 本期主要介紹以下幾個(gè)插件和幾個(gè)坑 autoprefixer postcss-partial-import...

    lcodecorex 評論0 收藏0
  • PostCSS自學(xué)筆記(二)【番外

    摘要:通過配置規(guī)則和單位使用或來解決。其他關(guān)于我個(gè)人的一系列學(xué)習(xí)介紹及總結(jié)有興趣可以參閱自學(xué)筆記一安裝使用篇自學(xué)筆記二插件篇自學(xué)筆記二番外篇一自學(xué)筆記二番外篇二 利用PostCSS解決移動(dòng)端REM適配問題 上一期有提到結(jié)合postcss-px2rem插件來處理移動(dòng)端適配的方案,以及相關(guān)的避坑方法,之后總覺得這個(gè)解決方案問題太多,也就誕生了另一套方案運(yùn)用postcss-pxtorem插件來進(jìn)行...

    Harpsichord1207 評論0 收藏0
  • webpack v2升級踩坑筆記

    摘要:從再到目前當(dāng)紅明星,前端模塊打包技術(shù)日新月異,在今年月份和月份左右接連更新了和版本為了減少冗余模塊,縮減文件大小,中也加入了關(guān)于的特征,可以查看知乎如何評價(jià)新引入的代碼優(yōu)化技術(shù)的討論。 從Grunt->gulp->webpack,再到目前當(dāng)紅明星rollup,前端模塊打包技術(shù)日新月異,webpack在今年1月份和6月份左右接連更新了v2和v3版本,為了減少冗余模塊,縮減bundle文件...

    JayChen 評論0 收藏0
  • 前端自學(xué)筆記 - 第二(vuePress自動(dòng)部署 & 后臺項(xiàng)目自學(xué))

    摘要:今天部署好了項(xiàng)目,現(xiàn)在寫好了博客頁面,只要一提交,會自動(dòng)打包并且部署如果部署失敗,還會發(fā)送郵件提醒。但今天為了自動(dòng)化部署項(xiàng)目,掛了三四十次了,真是慘不忍睹。。。而這第二個(gè)項(xiàng)目,將會是第一個(gè)的深入。 長期更新前端自學(xué)筆記,歡迎關(guān)注 前端自學(xué)筆記 - 第一篇(nginx/flutter/后臺系統(tǒng)/vuepress博客) 一、jenkins自動(dòng)部署vuePress博客項(xiàng)目 自動(dòng)化部署項(xiàng)目de...

    zzzmh 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<