上一章说了基本的webpack是用,包括命令行打包,npm脚本打包等基础的东西。

这篇说一下webpack的资源管理,包括(图片,字体,数据),首先调整一下项目结构成:

  1. webpack-demo
  2. |- package.json
  3. |- webpack.config.js
  4. |- /dist
  5. |- bundle.js
  6. |- index.html
  7. |- /src
  8. |- index.js
  9. |- /node_modules
    没有的文件自行新建一个,那个node_modules是自动生成的,这个可不要手工新建
  10. 使用webpack加载css文件:
    为了在js模块中加载css,我们首先需要安装两个模块:
  1. npm install --save-dev style-loader css-loader

在webpack-demo目录执行上述命令,会安装style-loader和css-loader模块

一个用来加载css文件,一个用来在页面head中插入内嵌样式。

修改webpack.config.js,修改后的文件内容如下:

  1. const path = require('path');
  2. module.exports = {
  3. entry: './src/index.js',
  4. output: {
  5. filename: 'bundle.js',
  6. path: path.resolve(__dirname,
  7. 'dist')
  8. },
  9. module: {
  10. rules: [
  11. {
  12. test: /\.css$/,
  13. use: [
  14. 'style-loader',
  15. 'css-loader'
  16. ]
  17. }
  18. ]
  19. }
  20. }

相比上一篇的配置,增加了module配置,简要说明一下。

rules定义规则,test是一个正则。此处的正则表示匹配以.css结尾的文件

use指定使用的loader,loader就是加载器了,你要在webpack中管理各种资源,包括css

就必须有相对应的资源加载器。此处的loader指定了两个加载器,我们之前已经用命令安装到本地了

接着在src目录新建一个style.css文件,文件内容如下:

  1. .hello {
  2. color: red;
  3. }

不多说,这个不会看不懂吧。。。

修改src目录下的index.js文件,导入我们的css,内容如下:

  1. import _ from 'lodash';
  2. import './style.css';
  3.  
  4. function component() {
  5. var element = document.createElement('div');
  6. element.innerHTML = _.join(['Hello', 'webpack'], ' ');
  7. element.classList.add('hello');
  8. return element;
  9. }
  10. document.body.appendChild(component());

相比之前的js文件,这里增加了两行内容:

import语句用来导入我们写的css样式,element.classList.add用来给元素添加样式

修改完成。保存文件,执行如下命令:

  1. npm run build

然后在浏览器中打开index.html,看看div中的字体是不是变成了红色。这说明我们的样式生效了。

使用webpack加载图片:

接着再来看看webpack如何加载图片资源,首先修改webpack.config.js,在rules组里添加如下内容:

  1. {
  2. test: /\.(png|svg|jpg|gif)$/,
  3. use: [
  4. 'file-loader'
  5. ]
  6. }

正则用来匹配图片文件名后缀,加载图片使用file-loader

当然,我们要使用file-loader,肯定要先安装,所以修改完了别忘了控制台执行:

  1. npm install --save-dev file-loader

接着在src目录添加一张图片,图片后缀要和正则的能匹配上。。。随便放什么,随你喜欢就好

再修改src目录的index.js文件,修改后的内容如下:

  1. import _ from 'lodash';
  2. import './style.css';
  3. import Icon from './icon.png';
  4.  
  5. function component() {
  6. var element = document.createElement('div');
  7. element.innerHTML = _.join(['Hello', 'webpack'], ' ');
  8. element.classList.add('hello');
  9. var myIcon = new Image();
  10. myIcon.src = Icon;
  11. element.appendChild(myIcon);
  12. return element;
  13. }
  14. document.body.appendChild(component());

在这里导入了图片,并创建了image对象加入到页面中。

再来修改一下src目录下的style.css文件,修改后的内容如下:

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

再次执行命令:

  1. npm run build

打包完成后打开html文件,应该可以看到div的背景图片了。

官网关于资源管理的介绍中还说了字体和xml数据的示例,个人觉得如果你不做

富文本编辑器需要自带字体的前端需求并不多,所以不做介绍了

而且使用上来说和加载图片基本差不多。有需要的看下官网介绍吧

webpack快速入门(三):资源管理的更多相关文章

  1. webpack 快速入门 系列 —— 性能

    其他章节请看: webpack 快速入门 系列 性能 本篇主要介绍 webpack 中的一些常用性能,包括热模块替换.source map.oneOf.缓存.tree shaking.代码分割.懒加载 ...

  2. webpack快速入门——实战技巧:watch的正确使用方法,webpack自动打包

    随着项目大了,后端与前端联调,我们不需要每一次都去打包,这样特别麻烦,我们希望的场景是,每次按保存键,webpack自动为我们打包,这个工具就是watch! 因为watch是webpack自带的插件, ...

  3. webpack快速入门——CSS进阶:自动处理CSS3前缀

    为了浏览器的兼容性,有时候我们必须加入-webkit,-ms,-o,-moz这些前缀.目的就是让我们写的页面在每个浏览器中都可以顺利运行. 1.安装 cnpm i postcss-loader aut ...

  4. webpack快速入门——如何安装webpack及注意事项

    1.window+R键,输入cmd打开命令行工具,输入 mkdir XXXX(XX:文件夹名): 2.cd XXX 进入刚刚创建好的文件夹里,输入cnpm install -g webpack (安装 ...

  5. webpack快速入门——webpack3.X 快速上手一个Demo

    1.进入根目录,建两个文件夹,分别为src和dist 1).src文件夹:用来存放我们编写的javascript代码,可以简单的理解为用JavaScript编写的模块. 2).dist文件夹:用来存放 ...

  6. webpack快速入门——配置文件:入口和出口,多入口、多出口配置

    1.在根目录新建一个webpack.config.js文件,然后开始配置: const path = require('path'); module.exports={ //入口文件的配置项 entr ...

  7. webpack快速入门——配置文件:服务和热更新

    1.在终端安装 cnpm i webpack-dev-server --save-dev 2.配置好后执行 webpack-dev-server,这时候会报错 出现错误,只需要在pagejson里配置 ...

  8. webpack快速入门——CSS文件打包

    1.在src下新建css文件,在css文件下新建index.css文件,输入以下代码 body{ background:pink; color:yellowgreen; } 2.css建立好后,需要引 ...

  9. webpack快速入门——配置JS压缩,打包

    1 .首先在webpack.config.js中引入 const uglify = require('uglifyjs-webpack-plugin'); 2.然后在plugins配置里 plugin ...

  10. webpack快速入门——插件配置:HTML文件的发布

    1.把dist中的index.html复制到src目录中,并去掉我们引入的js 2.在webpack.config.js中引入 const htmlPlugin = require('html-web ...

随机推荐

  1. Linux:数据流重定向

    1)垃圾桶黑洞 /dev/null command > /dev/null 2)stdout与stderr写入同一个文件 command > filename >& comm ...

  2. React之事件处理

    在react中,事件处理的写法和处理方式可能会和vue以及传统html有些不同. 一.事件名和默认行为阻止 事件名采用驼峰写法,并且方法名用大括号引入,而不是双引号: <button onCli ...

  3. angularjs 定时器 销毁

    angular.module('app', []) .controller('ItemController', function($scope, $interval) { // store the i ...

  4. Node 抓取非utf-8编码页面

    代码示例 Nodejs抓取非utf8字符编码的页面 -- Ruby's Louvre var http = require('http'); var iconv = require('iconv-li ...

  5. PHP中 public、protected 和 privare的区别

    权限:public>protected>private public:谁都可以调用 protected:只有自己和派生类可以调用 privare:只有自己可以调用

  6. proc介绍及问题分析

    文件系统 基本介绍 proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口.用户和应用程序可以通过proc得到系统的信息,并可以改变内 ...

  7. caffe学习4——net

    参考文献 1 The net jointly defines a function and its gradient by composition and auto-differentiation. ...

  8. 10day1

    但愿复赛的时候旁边坐的不是学军镇海杭二绍一的众神犇.   阅览室 模拟 [问题描述] 一个阅览室每天都要接待大批读者.阅览室开门时间是 0,关门时间是 T.每位读者的到达时间都 不一样,并且想要阅读的 ...

  9. WebStorm的下载与安装

    百度搜索: 链接:http://www.jetbrains.com/webstorm/ 链接:http://www.jetbrains.com/student/ 学生免费授权计划 请从正规来源下载软件 ...

  10. hbase单机及集群安装配置,整合到hadoop

    问题导读:1.配置的是谁的目录conf/hbase-site.xml,如何配置hbase.rootdir2.如何启动hbase?3.如何进入hbase shell?4.ssh如何达到互通?5.不安装N ...