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. 发散问题——Spring容器及加载

    一.前言 发散问题系列,是围绕日常工作,发散思考,提取问题,并寻求答案的一个系列.总的来说,就是将遇到的问题发散来提出更多的问题,并通过解决发散问题,从而对问题有更深入的了解,对知识有更深刻的记忆,帮 ...

  2. android设备使用usb串口传输数据

    首先介绍两个开源项目一个是Google的开源项目:https://code.google.com/archive/p/android-serialport-api/ 另一个是我们这次介绍的开源项目:h ...

  3. 通过virtualbox最小化安装centos 6.3后无法上网解决办法

    通过virtualbox最小化安装centos 6.3后无法上网解决办法 1.设置virtualbox的网络连接方式,如下图使用桥接方式,桥接的网卡为宿主正在上网的网卡,现在我是通过无线来上网的,所以 ...

  4. protected 学习

    virtual是把一个方法声明为虚方法,使派生类可重写此方法,一般建立的方法是不能够重写的,譬如类A中有个方法protected void method(){ 原代码....;}类B继承自类A,类B能 ...

  5. AFNetworking 内部详解

    AFNetworking 是一个适用于IOS 和 Mac OSX 两个平台的网络库,他是在Foundation URL Loading System  基础上进行的一套封装 ,并提供了丰富的API接口 ...

  6. CSS样式表初学,比C#和JS简单

    今天咱们一起来看下CSS样式表的基本基础 经常看博客或者喜欢钻研代码这一类的人对CSS可能有所耳闻,但具体的可能不是很清楚 那什么是CSS呢?与HTML又有什么区别呢?今天咱们就来说道下这个CSS C ...

  7. Vuex(一)——vuejs的状态管理模式

    一.Vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式. 它采用集中式存储 管理 应用的所有组件 的 状态,并以 相应的规则 保证 状态以一种 可预测的方式 发生变化. ...

  8. Python科学计算—numpy模块总结(1)

    作为一个本科学数学专业,目前研究非线性物理领域的研究僧.用什么软件进行纯科学计算好,Fortran永远是第一位的:matlab虽然很强大,可以很容易的处理大量的大矩阵,但是求解我们的模型(有时可能是几 ...

  9. 玩转Eclipse--如何使用eclipse可以更好的提高我们的工作效率

    工欲善其事必先利其器,更加了解我们的开发工具有利于提高开发效率,而合理使用快捷键可以使我们事半功倍,这里收集了eclipse中的几种常见设置,eclipse的优化以及非常全面的快捷键介绍,大家有用到的 ...

  10. 解析PHP中常见的mongodb查询操作

    详细出处参考:http://www.jb51.net/article/38839.htm<?php// 欄位字串為$querys = array("name"=>&qu ...