webpack 1.x 学习总结

webpack介绍(from github):

  A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows to load parts for the application on demand. Through "loaders," modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff. ——from github

总之意思就是说webpack是一个打包工具,他可以通过“代码分割”打包的时候包含所需要的部分,通过loader处理各种类型包含commonjs、amd、es6、css、iamge等等各种类型的文件。

各类文件处理方式:

  webpack相比较grunt按照任务执行操作,他是根据文件类型处理文件。项目中主要的文件类型有html、css、less/sass、image、tpl(模板文件)、js.下面分别进行说明:

  .html:

    处理html文件需要html-laoder,webpack.config.js配置文件中的配置方式如下所示:    

{    test:/\.html/,    loader:‘html-loader‘},

    html进行更加复杂操作需要html-webpack-plugin插件,配置如下图所示:

plugins:[    new htmlWebpackPlugin({        filename:‘a.html‘,        template:"index.html",        inject:‘body‘,//body head false        title:‘webpack is a‘,        chunks:[‘a‘]        //excludeChunks:[‘c‘],        minify:{            removeComments:true,            collapseWhitespace:true        }    })]ps参数说明:Filename:打包后文件名Template:模板对象Inject:body/head/false(不自动注入)Minify:removeComments/collapseWhitespace(压缩)Chunks:包含哪些chunkexcludeChunks:不包含哪个chunk自定义参数:可在模板中通过<%=xxx%>方式获取compilation.assets[路径].source():内联插入

  .js:

    webpack可以处理普通js,对于es6(CSMAScript-262第六次修改,也叫ECMA2015)语法需要转换成普通js,因此需要一个转换器--babel,babel需要知道你想要转换哪些es6特性。通过presets可以设置,转换哪些特性,设置presets的值为latest或者env则转换所有特性,配置如下:

module:{    loaders:[        {            test:/\.js$/,            loader:‘babel-loader‘,            include:path.resolve(__dirname,"src"),            exclude:path.resolve(__dirname,"node_modules"),            query:{                presets:[‘latest‘]            }        }    ]}因为babel处理比较耗时,特制定include(指定扫描哪些路径)与exclude(指定扫描排除哪些路径)

  .css:

    css-loader用于处理css文件 style-loader用于将css-loader处理后的文件插入到页面中(建立style标签)

{    test:/\.css$/,    loader:‘style-loader!css-loader‘},

  .css/less:

    less文件通过less-loader处理,处理后仍需要css-loader和style-loader,如有需要还需要post-css-loader(增加浏览器前缀)

{    test:/\.less$/,    loader:‘style-loader!css-loader!less-loader‘}

  .jpg...:

    处理图片文件可以使用file-loader和url-loader,两者的区别:file-loader负责加载图片,url-loader可以设置一个limit值,当图片大小大于该阈值时使用file-loader加载,当图片小于该阈值时会被硬编码成base64格式,添加到文件中。配置如下所示:

{    test:/\.(jpg|png|gif|svg)/,    loader:‘file-loader‘,//url-loader    query:{        name:‘static/[name]-[hash].[ext]‘,        //limit:‘20000‘ //单位b    }    //test:/\.(jpg|png|gif|svg)/i,    //loaders:[    //    ‘url-loader?limit=20000&name=assets/[name]-[hash:5].[ext]‘,    //    ‘image-webpack‘    //]

}

  .tpl

  tpl主要是指项目中用到的各种模板文件,比如ejs/jade.....我们需要安装响应的“loader”,以ejs为例,首先要安装ejs-loader

{    test:/\.tpl/,    loader:‘ejs-loader‘}

  了解到的只是webpack打包冰山一角,持续跟进webpack中。。。。

时间: 2024-10-05 15:02:42

webpack 1.x 学习总结的相关文章

webpack 3.X学习之多页面打包

作者网站原文:http://hawkzz.com/blog/blog/1514542087911 简介 我们开发不可能只写一个页面,每次都要写很多页面,这时为了开发效率,我们使用前端自动化工具webpack,那么webpack是如何打包页面的呢?又是如何打包多页面的呢? 单页面打包 我们知道要打包单页面的方法,很简单,配置入口,和html插件, const HtmlWebpackPlugin = require('html-webpack-plugin'); const config = { e

Webpack打包工具学习使用

Webpack 是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源.还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载.通过 loader 的转换,任何形式的资源都可以视作模块,比如 CommonJs 模块. AMD 模块. ES6 模块.CSS.图片. JSON. Coffeescript. LESS 等. 一.核心概念 入口:webpack打包的入口文件 输出:这个就是对源代码打包之后,得到的文件,文件我们一般命名为

webpack入门-个人学习资源收集

本来是想自己写哈个人学习webpack心德的,不过网上现在已经有各种比较好的,详细的入门或者深入资源了. 所以我就简单总结了一下,我在入门webpack时看的一些博客和文档,以及顺道看到的一些觉得也应该了解的东西 webpack官方文档: https://www.webpackjs.com/concepts/ 比较好的webpack入门博客: https://segmentfault.com/a/1190000006178770 https://www.jb51.net/article/1173

webpack vuejs项目学习心得

最近在做移动端的项目,最近webpack和vuejs很火,就想到了用vuejs webpack来构建我的项目 先了解了一些webpack的入门基础 http://webpack.github.io/docs/  webpack官方文档 https://zhuanlan.zhihu.com/p/20367175 webpack傻瓜式入门一 https://zhuanlan.zhihu.com/p/20397902  傻瓜式入门(二) 看完入门教程,懂得了webpack的一些基本配置和插件的使用.

webpack的入门学习

1.配置文件创建 新建两个文件夹dist和src,以及内部的文件. 再新建一个配置文件webpack.config.js 为什么要新建这么一个文件呢? 因为当我们在命令行中直接使用"webpack"命令去对项目进行打包时,webpack会去项目的根目录下直接去找webpack.config.js这个配置文件,webpack会将其作为默认的配置去运行打包   webpack.config.js配置文件如下: module.exports = { entry : { main : __di

入门webpack(浓缩学习webpack经过)

熟话说浓缩就是精华,哈哈,所以就这么简单粗暴的介绍下吧,写下的都是精华. 已经不是第一次听说webpack,但是我的起步有点晚,现在才看.开门见山~~ 1 1.什么是webpack? webpack是当下最热门的前端资源模块化管理和打包工具(就是一个打包器),可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源,还可以将需要加载的模块进行代码分离,等到实际需要的时候再进行异步加载.通过loader的转换,任何资源都可以视作模块,如COMMONJS模块 ,AMD模块,JS CSS ,

Webpack新手入门教程(学习笔记)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang TC Semibold"; color: #000000 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0

学习建立基于react,webpack模板项目

我是一个react的初学者,在学习的过程中遇到了模板搭建问题,想把自己遇到的问题记录下来,顺便加深印象,有不对的地方请指正. 学习的过程中,我主要感谢两个人的博客: http://www.wukai.me/2016/09/14/create-a-react-webpack-es6-project/ http://www.jianshu.com/p/42e11515c10f 这两个人的博客写的都非常好,感兴趣的同学可以去看看. 由于我之前没有接触过webpack,所以先学习了一下博客2,然后在按照

node+webpack环境搭建 vue.js 2.0 基础学习笔记

npm install -g vue //全局安装vue npm install -g webpack //全局安装webpack npm install -g vue-cli //全局安装vue-cli //可用淘宝镜像 npm=>cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org生成项目 vue init webpack my-first-vue-project //生成项目名为my-first-vue-pr