目录

webpack入门03

1,创建webpack项目

2,npm初始化

3,安装webpack

4,创建其他目录和文件

--src:源文件目录
  --componets:组件目录
    --layer:组件layer目录
      --layer.html
      --layer.js
      --layer.less
  --css:公用的样式文件
    --common.css
  --assets:图片资源目录
  --app.js
--dist:打包后静态资源目录
--index.html
--package.json
--webpack.config.js

5,案例1:

  • webpack.config.js:定义文件入口,出口和模板
  • app.js文件:引用layer模块
  • 定义组件相关文件:layer.html,layer.less,layer.js

6,babel加载器应用

  • 下载babel-loader包含babel-loader,babel-core(babel加载器将ES6转换成浏览器能解析的语法)
  • 下载babel插件:babel-preset-latest(babel插件用于将模块打包成指定版本)
  • preset插件配置方式一:webpack.config.js
  • preset插件配置方式二:package.json
 
 
  • loader加载器参数
include:指定要转换的模块的目录,exclude:指定不要转换的模块的目录
include和exclude还可以配置绝对路径:

7,CSS加载器应用

  • 安装加载器:style-loader,css-loader
  • 给common.css添加样式
  • 将common.js导入到app.js文件中
  • 在webpack.config.js中配置加载css加载器

7.1,postcss-loader(css加前缀)

  • 安装postcss-loader插件
  • 在webpack.config.js配置postcss-loader,使其打包时自动增加浏览器前缀
  • 若css采用@import方式引用css文件,那么这个引用的文件并不会经过postcss-loader
  • 通过postcss-loader参数:importLoaders可以设置,使所有css文件按顺序经过:postcss-》css-loader-》style-loader处理

7.2,less-loader(处理less)

  • 安装less-loader
  • 配置webpack.config.js
  • 编写用例

7.3,sass-loader(处理scss)

8,处理模板文件

8.1 模板时html语法

  • html-loader能够将layer.html作为模板字符串,在js中进行处理
  • 配置webpack.config.js
  • 在layer.js导入layer.html,使layer.html能够作为字符串传递给其他模块
  • 在主页面中定义好layer要插入到位置
  • 在入口文件中引用layer组件模块,拿到layer组件的模板,将其插入到主页面中
  • 结果:layer组件成功插入到了index.html页面中

8 .2 模板是ejs语法

  • 处理ejs模板需要使用ejs-loader
  • 配置webpack.config.js
  • 使用ejs语法编写layer组件模板
  • 在layer组件的js中引入模板,引入的模板返回的是一个方法(tpl)
  • 入口文件引用layer组件,并向组件传如参数
  • 结果:index.html页面将根据传递的参数显示layer组件

9,图片处理

9.1 file-loader

  • file-loader能根据相对路径生成图片的路径(css文件,html文件)
  • 配置webpack.config.js
  • 在css,html文件中引用图片
  • 结果:css,html文件将生成的文件路径自动转换到代码中
  • 若在组件的模板文件中使用相对路径引用图片,那么当主页面引用组件是,图片路径不会自动转换,导致图片无法正常显示,需要使用${require(image_path)},如下:
结果:使用上面方式后,组件中的图片才能正常显示
  • 通过以下方式配置webpack.config.js的file-loader组件query参数,能够指定生成的图片的位置和文件名,如下(assets目录中,文件名为图片原名-5位哈希值.后缀)

9.2 url-loader

  • url-loader能根据相对路径生成文件路径,且能根据图片大小生成url方式引用的文件,和database64格式的图片数据
  • 配置webpackconfig.js
  • 结果:url-loader限制图片大小为20000kb,小于这个值的图片不会重新打包,而是将图片数据打包到js和html文件中,所以打包结果只生成两个文件,且这两个文件的大小也增大了。

9.3 image-webpack-loader

  • 结合file-loader,或url-loader使用,能够对图片进行压缩
  • 配置webpack.config.js,image-webpack放置url-loader后,先压缩,再打包
结果:经过压缩后,图片的大小只有7.07kb,并且生成在assets目录中

加载器使用方式

  • 在脚本的require中使用
  • 通过CLI命令使用
  • 通过配置文件webpack.config.js使用
 
 
posted @ 2017-09-14 15:25  沐晨风叶  阅读(431)  评论(0编辑  收藏  举报