style-loader和css-loader

        在使用了webpack之后,给了我们两种大的选择来使用css,一种就是我们传统的方式通过

<link href="./public/css/users/users.css" rel="stylesheet"/>

的方式来引入,这是我们很熟悉的方式;另外,我们还可以见到下面这种写法,就是在js文件里面写到:

import './index.css';

然后再也页面上这个index.css还生效了,这是怎么一回事呢?这跟我这次要说的style-loader和css-loader有关系。

一、安装style-loader和css-loader

F:\Program\appserver\AppServ\www\proedu>npm install --save-dev style-loader css-loader

二、修改webpack.config.js,如下:

const path = require('path');
module.exports = {
  entry: "./demo.js", 
  output: {
    path: path.resolve(__dirname, "dist"), 
    filename: "demo_compiled.js"
  },
  mode:'development',  
  watch:true,
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude:/(node_modules|bower_components)/,
        loader: "babel-loader",
        options: {
          presets: ["es2015"]
        }
      },
	  {
        test: /\.css$/,
        loader: ['style-loader', 'css-loader']
      }
    ]
  }
}

其中

	  {
        test: /\.css$/,
        loader: ['style-loader', 'css-loader']
      }

这一段就是新增的配置,这两个东西的工作原理文章最后说,我们先继续进行下面的工作。

三。新建index.html:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>管理后台-用户列表</title>
<script src="./dist/demo_compiled.js"></script>
</head>
<body >
	<div id="root">
		
	</div>
	<p>页面上的乐之者java</p>
</body>
</html>

引入了用webpack编译后的demo_compiled.js。

四、编写demo.js:

import './index.css';
window.onload=function(){
    document.getElementById("root").innerHTML="<h1>js写的乐之者java</h1>";	
}

很简单,只是import了当前路径下一个叫做index.css的文件,然后使用js在id为root的元素里面插入了一句html代码。

五、再看看index.css

p{
	color:red;
}
h1{
	font-size:14px;
	color:green;
}

好了,相关的文件都编写完毕了,我们使用浏览器打开index.html,查看效果是什么样的呢?

image.png

六、从上边的图中,我们看到,css已经起作用了,而且最终的效果是在index.html页面的head标签之前加入了style标签,二style标签里面的内容正是index.css里面的内容。现在看来,style-loader和css-loader的作用已经很明显了,webpack使用它们干了什么事也慢慢浮出水面了:

        我们在webpack.config.js里面配置了style-loader和css-loader后,遇到后缀为.css的文件,webpack先用css-loader加载器去解析这个文件,遇到类似“import "xxx.css"”这类引入css的语句就将相应css文件引入(也就是说,如果没有css-loader,就没法解析这类语句),最后将计算完的css(之所以说计算,是因为有可能是使用less等预编译语言编写的css)通过style-loader放入到一个style标签里面,最终放到页面的head标签里,流程就是这样了。

        还有一点需要注意的是,loader是有顺序的,webpack肯定是先将所有css模块依赖解析完得到计算结果再创建style标签。因此应该把style-loader放在css-loader的前面(webpack loader的执行顺序是从右到左)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值