webpack 4 配置模組化樣式(css/less..)
本人在配置的時候找了好多資料,沒有直接一套配置的文章, 因為這個比較重要, 隨手寫下筆記
先安裝一些loader
npm install --save-dev less-loader css-loader style-loader less
這裡我用的是less, 不用less的可以忽略
然後進行修改腳手架, 本人是這樣情況, 沒需求的請忽略。(vue的好像是預設開啟的, ng的好像是關閉的, 我用的是不出名的框架就不講了)
npm run eject
然後找到配置檔案。 webpack module下面的 rules push一個配置
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.less$/,
use: [
'style-loader',
{ loader: 'css-loader', options: { importLoaders: 1 } },
'less-loader'
]
}
]
}
}
當然還有其他方式, 這裡用config的方式。 然後上面這個是官方推薦的配置。(我是不推薦的, 我們肯定要改的, 因為要模組化, 全打包在一起, 樣式會衝突的, 一般也叫scoped
, VUE就是這麼叫的)
這裡可以先看下匯入的是什麼東西
import styles from './emmm.less'
列印styles
, console.log(styles.toString())
發現是個字串, 因為有css-loader
這個玩意, 去掉就沒了, 同時head裡面會新增一個style。
為了達到scoped
的目的, 我們需要安裝postcss-loader
npm i -D postcss-loader
然後修改配置檔案, 下面的程式碼同時加了autoprefixer跟cssnano, npm安裝下就好了。
這是最終的配置
{
test: /\.(css|less)$/,
use: [
'style-loader',
{ loader: 'css-loader', options: { modules: true, importLoaders: 1 } },
{
loader: 'postcss-loader',
options: { // 如果沒有options這個選項將會報錯 No PostCSS Config found
plugins: (loader) => [
require('postcss-import')({ root: loader.resourcePath }),
require('autoprefixer')(), //CSS瀏覽器相容
require('cssnano')() //壓縮css
]
}
}
]
}
然後使用它
import styles from './test.less'
<div className={styles.red}>~~</div>
渲染的時候
class="_1RLAUWst1roAsaOTU7r3w8"
這裡我推薦一個庫, 就是對class進行控制的庫 classNames
npm install classnames --save
大概這樣配合使用
<div className={classNames(styles.inputs, 'row center-xs middle-xs')}>
--END--
相關連結:
https://webpack.js.org/loaders/less-loader/
https://github.com/postcss/postcss-loader
https://github.com/JedWatson/classnames
相關文章
- 【CSS模組化之路2】webpack中的Local ScopeCSSWeb
- Webpack之模組化優化Web優化
- 解決:Webpack4 打包時css樣式檔案為空WebCSS
- css模組化方案CSS
- css樣式的組成CSS
- Webpack4系列教程(四) CSS相關配置WebCSS
- 前端ES6模組化,Webpack,前端Web
- webpack模組化學習記錄Web
- CSS 如何模組化,工程化CSS
- 初始化樣式cssCSS
- 如何實現css模組化CSS
- Vue 路由模組化配置Vue路由
- webpack根據需求配置打包模組及打包指令Web
- [譯] 什麼是模組化 CSS?CSS
- webpack是如何實現前端模組化的Web前端
- Webpack 模組打包原理Web
- CSS歷理 初始化樣式CSS
- css頁面樣式初始化CSS
- webpack4配置(3)-打包css/js/圖片等資源WebCSSJS
- css樣式CSS
- [譯] 如何用函式式 CSS 簡化樣式工作函式CSS
- webpack 支援的模組方法Web
- 07 . 前端工程化(ES6模組化和webpack打包css,less,scss,圖片,字型,配置Vue元件載入器和釋出專案)前端WebCSSVue元件
- webpack+jquery 元件化、模組化開發的解決方案WebjQuery元件化
- webpack4.x css 壓縮WebCSS
- CSS命名規範和模組化的思考CSS
- webpack(4)webpack.config.js配置和package.json配置WebPackageJSON
- 進擊的模組化+webpack的簡單實現Web
- 模組化打包工具-Webpack外掛與其他功能Web
- 配置模組
- 001---css樣式規則及css字型樣式CSS
- 常用CSS樣式2:其它樣式CSS
- 常用CSS樣式1:文字樣式CSS
- webpack4-基礎配置Web
- webpack 4 配置遇到的坑Web
- Webpack 4 配置最佳實踐Web
- webpack4基礎配置Web
- 最新 umi4-max 如何使用 webpack5 聯邦模組Web