Webpack介绍

webpack 官网 http://webpack.github.io/docs/

webpack 中文地址:https://doc.webpack-china.org/

webpack集模块加载、前端文件打包的前端工具(简单写一点以后补充吧)

网站详细介绍了webpack 各种功能 以及重要的 webpack.config 的配置

  1. 对 CommonJS 、 AMD 、ES6的语法做了兼容
  2. 对js、css、图片等资源文件都支持打包
  3. 串联式模块加载器以及插件机制,让其具有更好的灵活性和扩展性,例如提供对CoffeeScript、ES6的支持
  4. 有独立的配置文件webpack.config.js
  5. 可以将代码切割成不同的chunk,实现按需加载,降低了初始化时间
  6. 支持 SourceUrls 和 SourceMaps,易于调试
  7. 具有强大的Plugin接口,大多是内部插件,使用起来比较灵活
  8. webpack 使用异步 IO 并具有多级缓存。这使得 webpack 很快且在增量编译上更加快

Webpack安装

webpack通过 npm 命令进行安装

npm install webpack -g

还可以使用开发模式进行webpack的使用

$ npm init  // 初始化 package.json
$ npm install webpack --save-dev // 使用开发模式

Webpack配置

每个webpack工程都会有一个 webpack.cofnig.jsv 配置文件

他可以管理和引用当前项目所要使用库以及加载器

以下配置文件是由 webpack 1.x 标准构建的

2.x 兼容 1.x, 会在后续都使用 2.x 的配置作为示例

'use strict'
var webpack = require("webpack");

module.exports = {

    // 解析和加载的初始路径,一般在不设置的情况下默认使用当前文件路径
    context: __dirname + "",

    // 页面入口文件配置, 需要编译的文件路径
    // entry 接受三种值属性
    // 1.字符串 -> entry : "page1.js"
    // 2.数组 ---> entry : [ "page1.js", "page2.js"]
    // 3.对象 ---> entry : {  page1:"page1.js", page2:"page2.js" }
    entry:{
        index: __dirname + '/js/index.js',
    },

    // 入口文件输出配置
    // output.path 文件将要输出的路径
    // output.filaname 文件打包后的名称
    // [name] 默认为文件名
    // [hash] 打包前md5加密值
    // [chunkhash] 打包后md5加密值
    output:{
        path: __dirname + '/dist/js',
        filename: '[name]-[hash].js'
    },

    // 模块管理, 决定了如何处理项目中的不同类型的模块
    module:{
        //加载器配置
        loaders: [
            // test 通过正则表达式去匹配不同后缀的文件名
            // loader 选择当前文件要使用的加载器, 如果要使用多个加载器用 ! 连接
            { test: /\.js$/, loader: 'babel-loader' },
            { test: /\.less/, loader: 'style-loader!css-loader!less-loader'}
        ]
    },

    // 在webpack构建时对进行文件查找, resolve 的 extensions 属性用于自动补全的文件后缀
    // 扩展配置后 在使用 require('common') 同等于 require('common.js')
    resolve:{
        extensions:['','.js','.json']
    },

    // 组件管理
    plugins:[
        new XXX() ...
    ],

    // 打包第三方,或者外链的 cdn 使其在加载器中正常使用
    // 使用方式 var $ = require('jquery')
    externals:{
          jquery:'jQuery'
    }
}

webpack运行

1.在终端使用webpack 对某一个文件进行打包

webpack [目标文件地址].js [打包后输出地址].js

2.配置 webpack.config.js 内的参数后,通过配置文件内容进行打包

webpack --progress --display-modules --display-reasons --watch

webpack --config webpack.min.js //另一份配置文件

webpack --display-error-details //显示异常信息

webpack --watch //监听变动并自动打包 (实用!)

webpack -p //压缩混淆脚本,这个非常非常重要!

webpack -d //生成map映射文件,告知哪些模块被最终打包到哪里了

2.1可以将启动脚本配置至 package.json 后使用 npm便捷启动

编写脚本至 package.json



npm 命令运行

webpack 初识的更多相关文章

  1. webpack初识

    1.什么是Webpack WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等) ...

  2. Webpack学习-Webpack初识

    一.前言 webpack 到底是个什么东西呢,看了一大堆的文档,没一个能看懂的,因为上来就是给个module.exports 然后列一大堆配置,这个干啥,那个干啥,没一点用.但凡要用一个东西,一个东西 ...

  3. webpack初识!

    最近在使用webpack 感觉棒棒哒 下面这个简单的教程可以让你走入webpack的世界 欢迎使用webpack 这个小教程通过简单的例子来引导大家使用webpack 通过这些这篇文章你可以学到 如何 ...

  4. webpack初识(biaoyansu)

    1.是什么和为什么 在浏览器中的js之间如果需要相互依赖 src=a.js src=b.js src=c.js src=d.js 需要暴露出全局变量,而暴露出的这个全局变量是非常不安全的, 随着Nod ...

  5. 使用webpack loader加载器

    了解webpack请移步webpack初识! 什么是loader loaders 用于转换应用程序的资源文件,他们是运行在nodejs下的函数 使用参数来获取一个资源的来源并且返回一个新的来源(资源的 ...

  6. webpack学习(二)初识打包配置

    前言:webpack打包工具让整个项目的不同文件夹相互关联,遵循我们想要的规则.想 .vue文件, .scss文件浏览器并不认识,因此webpage暗中做了很多转译,编译等工作. 事实上,如果我们在没 ...

  7. vue第一单元(初识webpack-webpack的功能-webpack的初步使用)

    第一单元(初识webpack-webpack的功能-webpack的初步使用) #课程目标 了解webpack出现的意义,以及webpack解决的前端问题 掌握webpack的使用流程和步骤 掌握we ...

  8. webpack入门教程之初识loader(二)

    上一节我们学习了webpack的安装和编译,这一节我们来一起学习webpack的加载器和配置文件. 要想让网页看起来绚丽多彩,那么css就是必不可少的一份子.如果想要在应用中增加一个css文件,那么w ...

  9. 初识webpack——webpack四个基础概念

    前面的话 webpack是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源.当webpack处理应用程序时,它会递归地构建一个依赖关系图表 ...

随机推荐

  1. java集合基础

    集合概念与作用 1现实生活中把很多事物凑在一起就是集合.java中的集合类:是一种工具,就像是容器,存储任意数量的有共同属性的对象. 2在类的内部,对数据进行组织: 简单而快速的搜索大数量的条目 有的 ...

  2. CSS 预处理器中的循环

    本文由 nzbin 翻译,黄利民 校稿.未经许可,禁止转载! 英文出处:css-tricks.com 发表地址:http://web.jobbole.com/91016/ 如果你看过老的科幻电影,你一 ...

  3. swust oj(0088)表达式的转换

    表达式的转换(0088) Time limit(ms): 5000 Memory limit(kb): 65535 Submission: 435 Accepted: 93 Accepted 16级卓 ...

  4. URL解析器urllib2

    urllib2是Python的一个库(不用下载,安装,只需要使用时导入import urllib2)它提供了一系列用于操作URL的功能. urlopen urllib2.urlopen可以接受Requ ...

  5. HTML在网页中插入音频视频简单的滚动效果

    每次上网,打开网页后大家都会看到在网页的标签栏会有个属于他们官网的logo,现在学了HTML了,怎么不会制作这个小logo呢,其实很简单,也不需要死记硬背,每当这行代码出现的时候能知道这是什么意思就o ...

  6. 读APUE分析散列表的使用

    最近学习APUE读到避免线程死锁的部分,看到部分源码涉及到避免死锁部分,源码使用了散列表来实现对结构(struct)的存储与查找. 本文不讨论代码中的互斥量部分. #include <stdli ...

  7. C语言精要总结-指针系列(一)

    考虑到指针内容繁多,这里将指针作为一个系列,从简入繁,一点一点深挖并掌握这C语言的精华.初步计划如下 此文为指针系列第一篇: C语言精要总结-指针系列(一) 内存与地址 我们可以把内存看做一排连续的房 ...

  8. webUI自动化测试框架---”pyswat“介绍

    webUI自动化测试框架---"pyswat"介绍 大家好我是lamecho 辣么丑,今天给大家介绍一款web自动化测试框架pyswat.  "pyswat"是 ...

  9. 从foreach语句枚举元素看数组

    在foreach语句中使用枚举,可以迭代数组或集合中的元素,且无须知道集合中的元素的个数.如图显示了调用foreach方法的客户端和集合之间的关系.数组或集合实现带GetEnumerator()方法的 ...

  10. SVN常见问题总结一

    注意 转载须保留原文链接(http://www.cnblogs.com/wzhiq896/p/6828776.html  ) 作者:wangwen896 SVN是Subversion的简称,是一个开放 ...