stylus-loader
可以让react
直接引入.styl
文件,无需自己进行编译。
我使用create-react-app
构建工程,默认隐藏所有配置。要使用stylus-loader
,我们要对配置进行修改。步骤如下:
在工程根目录下执行
npm run eject
,会多出几个文件夹,我们需要的是config
文件夹。安装
stylus
相关依赖,执行npm i stylus stylus-loader --save-dev
或yarn add stylus stylus-loader
打开
config\webpack.config.dev.js
,在module.export -> module -> oneOf
中添加以下代码1
2
3
4
5
6
7
8{
test: /\.styl$/,
use: [
require.resolve('style-loader'),
require.resolve('css-loader'),
require.resolve('stylus-loader')
]
},打开
config\webpack.config.prod.js
,在module.export -> module -> oneOf
中添加以下代码!原文引用
(这是我参考下面的针对的css
配置,需要更进一步测试)这是因为prod
环境下,所有的css
都被ExtractTextPlugin
插件提取到同一个样式文件中,开发环境则是动态的创建style
标签并插入到html
的header
中。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25{
test: /\.styl$/,
loader: ExtractTextPlugin.extract(
Object.assign(
{
fallback: require.resolve('style-loader'),
use: [
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
minimize: true,
sourceMap: shouldUseSourceMap,
},
},
{
loader: require.resolve('stylus-loader'),
}
],
},
extractTextPluginOptions
)
),
// Note: this won't work without `new ExtractTextPlugin()` in `plugins`.
},
这样就可以在react
中直接引入.styl
文件了。开发过程中没有问题,生产环境暂时没问题,还需测试。