首页投稿(暂停使用,暂停投稿)开源工具技巧

学习webpack(四)

2017-05-19  本文已影响24人  _米黎

加载图片

First of all ,我们需要安装对应的loader,它会将样式中引用到的图片转换为模块来进行处理,ok我们开始安装:

npm install url-loader --save-dev

当然也可以去 package.json 中添加依赖,然后 npm install 是一样的效果

现在我们去项目目录下创建一个img的文件夹,放两张图分别为png格式和jpg格式。

然后修改 webpack.package.js:

loaders: [
    { test: /\.css$/, loader: "style-loader!css-loader" },
    { test: /\.(png|jpg)$/, loader: "url-loader?limit=8192" }   // 添加到这!并且会按照文件大小, 或者转化为 base64, 或者单独作为文件
    //在大小限制后可以加上&name=./[name].[ext],会将我们的文件生成在设定的文件夹下。
]

接下来在index.html中添加:

![](img/m.png)
<div id="pic1"></div>
<div id="pic2"></div>

然后在css中添加:

#pic1{
    width: 300px;
    height: 300px;
    background-image: url(img/m.png);
}
#pic2{
    width: 200px;
    height: 200px;
    background-image: url(img/shaizi.jpg);
}

继续运行webpack,如果正确无报错直接打开浏览器就可以看到图片,如果报错,运行如下命令:

npm install file-loader --save-dev

再次进行尝试!

现在我们打开浏览器的调试工具,可以看到小于8K的 背景图片 图片已经被转化成了base64的编码,而大于8k的图片则并没有转化(注意它的地址的变化!)。 直接使用img导入的图也并没有进行base64的转化。

热加载

当项目逐渐丰满健壮起来的时候,webpack的编译时间会变长,可以通过设置一些参数让编译输出的内容带有进度和颜色

webpack --progress --colors
  1. 最基本的启动webpack命令。
webpack
  1. 提供watch方法,实时进行打包更新。
webpack -w
  1. 对打包后的文件进行压缩
webpack -p
  1. 提供SourceMaps,方便调试
webpack -d
  1. 输出性能数据,可以看到每一步的耗时
webpack --profile
  1. 默认情况下 node_modules 下的模块会被隐藏,加上这个参数可以显示这些被隐藏的模块
webpack --display-modules

Tips

在编程过程中,你会不会觉得我们每次做一些修改都要反反复复去命令行里敲这个webpack很繁琐,所以webpack人性化的有一种监听的机制,下面介绍。

webpack 为我们提供了一个webpack --watch,他会启动监听模式。开启监听模式后,没有变化的模块会在编译后缓存到内存中,而不会每次都被重新编译,所以监听模式的整体速度是很快的。

在我们执行该命令后,修改一下css样式表,刷新浏览器发现样式发生了我们预期要的变化,但是显然这个还要我们去手动刷新浏览器,这不是我想要的结果,所以使用webpack-dev-server会是一个更好的办法!

安装  npm install webpack -dev-server -g

运行  webpack -dev-server
上一篇下一篇

猜你喜欢

热点阅读