webpack3学习2--管理资源

根据博文webpack3学习1–开始的操作,现在会有一个小项目,显示 “Hello webpack”。现在我们尝试整合一些其他资源,比如CSS和图片,看看 webpack 如何处理。

加载CSS

为了从JavaScript模块中import一个CSS文件,你需要在module配置中 安装并添加 style-loader 和 css-loader:

cnpm install --save-dev style-loader css-loader

webpack.config.js增加module=>rules配置:

var path = require('path');
module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
        {
            test: /\.css$/,
            use: ['style-loader', 'css-loader']
        }
    ]
  }
};

webpack 根据正则表达式,来确定应该查找哪些文件,并将其提供给指定的 loader。在这种情况下,以 .css 结尾的全部文件,都将被提供给 style-loader 和 css-loader。

这使你可以在依赖于此样式的文件中 import ‘./style.css’。现在,当该模块运行时,含有 CSS 字符串的 style 标签,将被插入到 html 文件的 head中。

在项目中添加一个新的 style.css 文件,并将其导入到我们的 index.js 中:

.hello {
    color: red;
}
import _ from 'lodash';
import './style.css';

function component() {
    var element = document.createElement('div');
    element.innerHTML = _.join(['Hello', 'webpack'], ' ');
    element.classList.add('hello');
    return element;
}

document.body.appendChild(component());

运行

npm run build
http-server

浏览器访问http://localhost:8080/dist/ ,可以看到Hello webpack变红了。

加载图片

可以使用 file-loader加载图片。

cnpm install --save-dev file-loader

webpack.config.js增加file-loader的配置

var path = require('path');
module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.(png|svg|jpg|gif)$/,
        use: ['file-loader']
      }
    ]
  }
};

src目录下增加测试图片icon.png

webpack-demo
  |- package.json
  |- webpack.config.js
  |- /dist
    |- bundle.js
    |- index.html
  |- /src
+   |- icon.png
    |- style.css
    |- index.js
  |- /node_modules

index.js如下

import _ from 'lodash';
import './style.css';
import Icon from './icon.png';

function component() {
    var element = document.createElement('div');
    element.innerHTML = _.join(['Hello', 'webpack'], ' ');

    element.classList.add('hello');//样式

    var myIcon = new Image();
    myIcon.src = Icon;
    element.appendChild(myIcon);//图片

    return element;
}

document.body.appendChild(component());

style.css增加背景图片:

.hello {
    color: red;
    background: url('./icon.png');
}

运行

npm run build
http-server

浏览器访问http://localhost:8080/dist/ ,可以看到图片和背景图片。
webpack资源管理还可以加载字体、数据、全局资源等,下一步再研究。

本例子源代码地址:https://github.com/wu-boy/webpack-demo,demo2目录。

参考资料:
1.webpack中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值