npm i install style-loader
对于css文件来说,只使用css-loader处理,是不够的,因此我们还需要style-loader进行处理。
如下,我们在 css-loader
后加上style-loader
。然后执行npm run build
// webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'build.js',
path: path.resolve(__dirname, 'dist'),
},
module: {
rules: [
{
// 是一个正则表达式
test: /\.css$/,
use: ['css-loader','style-loader',],
},
],
},
};
于是我们发现了,如下报错。
于是,我们调换一下二者的顺序后,再执行编译,编译成功。
use: ['style-loader','css-loader'],
loader的加载顺序是从右边开始的,如果换行了就是从下开始执行的
然后再看一下我们的页面效果,颜色已经添加上了。
很多项目中,css不足以满足我们的需要,因此就出现了less和sass。我们看一下less的配置。
注意颜色不能是字符串,不需要引号
// login.less
@bgColor:seagreen;
@fontSize:100px;
//
.title{
background-color: @bgColor;
font-size: @fontSize;
}
在login.js中引用
import './css/login.css'
import './css/login.less'
function login(){
const oH2 = document.createElement('h2')
oH2.innerHTML = '我的天啊'
oH2.className = 'title'
return oH2
}
document.body.appendChild(login())
然后我们尝试执行一下打包命令 npm run build
可以发现报错了,首先less
文件(或scss
文件)都是需要先转为css
文件才可以使用的,就跟typescript
会先被转为javascript
才可以执行一个道理。
我们将less安装到开发依赖中
npm i less -D
安装完成后我们执行,如下命令去执行一下less的编译
npx less ./src/css/login.less
可以看到,less文件被编译成如下的css写法。这里并没有编译成其他文件
我们也可以指定less编译后的输出文件。
// npx less 输入文件 输出文件
npx less ./src/css/login.less ./src/css/index.css
有了less之后,打包其实还是会报错,因为需要less-loader去解析。
同样,less-loader也安装到开发依赖(devDependencies)中
npm i less-loader -D
记住我们刚才loader执行的顺序,从右开始。我们需要less解析为css,所以这里先用到less-loader
,此时就是一个css文件了,然后就需要css-loader
来解析了,最后还需要style-loader
{
test: /\.less$/,
use:['style-loader','css-loader','less-loader']
}
最后执行一下打包,我们less中的样式和css中的样式都加载进来了。