Css- Loadercss
安裝
npm install --save-dev style-loader css-loader
用法
css-laoder 是解釋 @import
和 url()
。html
// common.css html , body { background: pink; padding: 0px; margin: 0px; background: url('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1521820324449&di=2930f7026f4242fdfdabf7b5cc0cac35&imgtype=0&src=http%3A%2F%2Fimg0.pconline.com.cn%2Fpconline%2F1312%2F04%2F3938137_2886_thumb.jpg'); } // flex佈局 div { display: flex; } // postcss處理後會爲其添加兼容各瀏覽器的前綴 // 當你打開打包後的html文件後,會在head中發現多了些style標籤,裏面就是你的樣式內容
// app.js import './common/common.css'; // 引入css
// webpack.config.js module: { rules: [ { test: /\.js$/, exclude: /(node_modules|bower_components)/, // 優化處理加快速度 use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] // 這裏須要npm安裝babel-preset-latest } } }, { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] //能夠是數組的格式,指定須要的loader,這裏順序須要注意一下,執行的時候是先執行 css-loader -> style-laoder // 這裏也能夠傳入參數 } ] },
options 參數
rootnode
默認是 /
。對於 /
開頭的URL, 默認行爲是不轉義的。webpack
url(/image.png) => url(/image.png)
web
若是設置了 root 參數 ,那麼查詢參數將被添加到 URL
前面。npm
use: [ { laoder: 'css-loader', options: {root: '.'} } ] // url(/image.png) => require('./image.png')
// root參數不建議使用,使用舊版的便可數組
url 瀏覽器
是否禁用url()解析
默認是false.babel
url(image.png) => require('./image.png') url(~module/image.png) => require('module/image.png')
import app
要禁用css-loader 解析 @import 能夠設置import爲false
modules
modules 會啓用 CSS 模塊規範。
importLoaders
用於配置「css-loader 做用於 @import 的資源以前」有多少個 loader。
var htmlWebpackPlugin = require('html-webpack-plugin') const path = require('path') module.exports = { mode: 'development', entry: './src/app.js', output: { filename: 'js/bundle.js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.js$/, exclude: /(node_modules|bower_components)/, // 優化處理加快速度 use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] } } }, { test: /\.css$/, exclude: '/node_modules/', use: [ { loader: 'style-loader' }, { loader: 'css-loader', options: { importLoaders: 1 //當css文件中又有引入了其餘的css的時候,須要設置一下importLoaders } }, { loader: 'postcss-loader', // 須要npm安裝postcss-loader options: { ident: 'postcss', plugins: (loader) => [ require('postcss-import')({ root: loader.resourcePath }), require('postcss-cssnext')(), require('autoprefixer')(), require('cssnano')() ] } } ] } ] }, plugins: [ new htmlWebpackPlugin({ template: 'index.html', inject: 'body', filename: 'index.html' }) ] }
未完待續,繼續學習繼續補充哦~