在入门使用中,我们使用Webpack构建了一个模块化项目:
目录结构如下:
|-- index.html
|-- main.js
|-- show.js
|-- webpack.config.js
那么,如今我们需要引入index.css文件,目录结构如下:
|-- index.html
|-- index.css
|-- main.js
|-- show.js
|-- webpack.config.js
由于Webpack不原生支持解析css文件,如果要支持非JS类型的文件,则需要使用Webpack的Loader机制。示例如下:
index.css
#id {
color: red;
}
webpack.config.js修改如下:
const path = require('path');
module.exports = {
entry: './main.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, './dist'),
},
module: {
rules: [
{
// 使用正则匹配要用该Loader转换的css文件
test: /\.css$/,
use: ['style-loader', 'css-loader'],
}
],
},
};
在执行webapck前先执行npm i -D style-loader css-loader
。
Loader可以看作具有文件转换功能的翻译员,配置里的module.rules数组配置了一组规则,告诉Webpack在遇到哪些文件时使用哪些Loader去加载和转换。注意事项:
- use属性的值需要是一个由Loader名称组成的数组,Loader的执行顺序是由后到前的
这里会把css文件也打包进bundle.js里面,这样子如果把所有文件都打包进js文件,js文件会越变越大,如果想让webpack单独输出css文件,需要使用plugin,下一章节介绍。