1.1.4 • Published 5 years ago
chain-css-loader v1.1.4
chain-css-loader
简化在 umi 和 create-react-app 中使用 stylus, 也支持
less
和sass
.(目前支持 css-loader@2)
目录
安装
npm install chain-css-loader --save-dev
API-相关
chain-css-loader
UmiRule
new UmiRule( webpackChain , options )
instance
- useStylus() ⇒ UmiRule
- useLess() ⇒ UmiRule
- useSass() ⇒ UmiRule
- useCss() ⇒ UmiRule
- extractCss() ⇒ UmiRule
static
RewiredRule
new RewiredRule( webpackConfig , options )
instance
- useStylus() ⇒ RewiredRule
- useLess() ⇒ RewiredRule
- useSass() ⇒ RewiredRule
- useCss() ⇒ RewiredRule
- extractCss() ⇒ RewiredRule
static
new UmiRule
- 可选参数
cssPublicPath
默认 '/', css在浏览器中被访问的跟路径cwd
默认process.cwd()
modulesWithAffix
默认 true, 对 *.module.ext 结尾的文件启用 CSS Modulesmodules
默认 false, 只对 .module.ext 结尾的文件启用 CSS Modules; 如果设置为 true, 对所有 .(css|scss|sass|less|styl(us)?) 启用 CSS ModulessourceMap
默认 true, 是否生成 .map 文件, 只在非开发环境生效compress
默认 true, 是否压缩css, 只在非开发环境生效usePoststylus
默认 false, 是否自行使用 poststylus 插件替换内置 postcss-loaderautoprefixer
browsers
浏览器兼容版本, 建议配置在.browserslistrc
文件中flexbox
默认no-2009
compress
压缩css配置mergeRules
默认 false,normalizeUrl
默认 false,mergeLonghand
默认 false,cssDeclarationSorter
默认 false
stylus
stylus-loader 配置test
默认 /.styl(us)?$/modules
默认 /.module.styl(us)?$/loader
默认 'stylus-loader'options
stylus 配置参数
ssr
跟 umijs 保持一致
使用说明
在 umijs 中使用添加stylus支持
npm install stylus stylus-loader --save-dev
一般使用
- 添加以下代码至
.umirc.js
import { UmiRule } from 'chain-css-loader';
export default {
urlLoaderExcludes: [
/\.styl$/,
],
chainWebpack(config) {
const rule = new UmiRule(config, {
modules: true // start up CSS modules
});
rule.useStylus();
return config;
}
}
高级特性
- 使用 poststylus 替换 postcss
npm install poststylus postcss-flexbugs-fixes autoprefixer rucksack-css --save-dev
- 添加以下代码至
.umirc.js
import poststylus from 'poststylus';
import { UmiRule } from 'chain-css-loader';
export default {
urlLoaderExcludes: [
/\.styl$/,
],
chainWebpack(config) {
const rule = new UmiRule(config, {
modules: true,
usePoststylus: true,
stylus: {
options: {
use: [
poststylus([
require('postcss-flexbugs-fixes'),
require('autoprefixer')({
flexbox: 'no-2009'
}),
'rucksack-css'
])
]
}
}
});
rule.useStylus();
return config;
}
}
- 运行
umijs
时可能报 browserslist 相关警告,需要添加以下代码至.browserslistrc
>1%
last 4 versions
Firefox ESR
not ie < 9
在 create-react-app 中使用添加stylus支持
npm install stylus stylus-loader --save-dev
简单使用
- 添加以下代码至
config-overrides.js
, 前提是使用了react-app-rewired
模块, 而不是导出webpack配置
const { RewiredRule } = require('chain-css-loader');
module.exports = {
webpack(config, env) {
const rule = new RewiredRule(config, {
modules: true
});
rule.useStylus();
return config;
}
};
高级特性
- 使用 poststylus 替换 postcss
npm install poststylus postcss-flexbugs-fixes autoprefixer rucksack-css --save-dev
- 添加以下代码至
config-overrides.js
const poststylus = require('poststylus');
const { RewiredRule } = require('chain-css-loader');
module.exports = {
webpack(config, env) {
const rule = new RewiredRule(config, {
modules: true,
usePoststylus: true,
stylus: {
options: {
use: [
poststylus([
require('postcss-flexbugs-fixes'),
require('autoprefixer')({
flexbox: 'no-2009'
}),
'rucksack-css'
])
]
}
}
});
rule.useStylus();
return config;
}
};
使用事例
更新记录
1.1.3
- 更新
lodash
- 更新
1.1.2
- 修复对
css-loader
传参问题
- 修复对
1.1.1
- 修复对 CSS Modules 的支持问题
1.1.0
- 支持在
create-react-app
脚手架中使用stylus
、less
、sass
等
- 支持在
1.0.0
- 支持在
umi
项目中使用stylus
等
- 支持在
1.1.4
5 years ago
1.1.3
5 years ago
1.1.3-beta.1
5 years ago
1.1.2
6 years ago
1.1.2-beta.1
6 years ago
1.1.2-beta.0
6 years ago
1.1.1
6 years ago
1.1.0
6 years ago
1.0.0
6 years ago
1.0.0-beta.3
6 years ago
1.0.0-beta.2
6 years ago
1.0.0-beta.1
6 years ago
1.0.0-beta.0
6 years ago