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. tab栏切换,内容为不断实时刷新数据的vue实现方法

    先说一下产品需求,就是有几个tab栏,每个tab栏对应的ajax请求不一样,内容区域一样,内容为实时刷新数据,每3s需要重新请求,返回的数据在内容区域展示,每点击一次tab栏需停止其他tab栏ajax ...

  2. ios 获取当前ViewController

    - (UIViewController*)getpresentVC:(UIWindow *)window{ if ([window.rootViewController class]==[UITabB ...

  3. 数据源C3P0配置

    1.导入jar包(dbutil->QueryRunner) 2.C3P0Util工具类 package com.learning.utils; import java.beans.Propert ...

  4. Linux下Memcached的安装步骤

    一.安装gcc# yum -y install gcc 二.安装libevent# wget http://www.monkey.org/~provos/libevent-2.0.12-stable. ...

  5. NOIP2009T3最优贸易

    洛谷传送门 看到这个题,原本想先从后往前dfs,求出能到终点的点,再在这些点里从前往后spfa,用一条边上的两个城市的商品价格的差来作边权,实施过后,发现图中既有负边权,又有回路,以及各种奇奇怪怪的东 ...

  6. unity 看到Sphere内部,通过Sphere播放全景视频时候遇到的问题

    Unity创建一Sphere默认是看不到球体内部的,所以需要用 Cull Front  修改剔除的方向,这就会带来一个新的问题,所播放的视频是像镜子一样翻转着的,所以要改变它的UV坐标使其翻转过来 f ...

  7. Linux命令之初出茅庐

    此处讲解常用到的参数选项: ls 是列出文件的意思 ls -a ,查看所有文件包含隐藏文件 ls -l ,查看与文件相关的所有属性信息 ls -i ,查看文件的inode信息 ls -h,按照更为容易 ...

  8. poj2566尺取变形

    Signals of most probably extra-terrestrial origin have been received and digitalized by The Aeronaut ...

  9. javascript的面向对象详解

    每次说到javascript到面向对象,总感觉自己心里懂,但是却不知道该怎么说,这就是似懂非懂到表现,于是乎,每次一说,就要到处去查找资料,零零碎碎到看了一些,感觉有懂了,但是过段时间,好像又不知道是 ...

  10. 谷歌统计使用代码部署和事件API使用

    谷歌统计代码部署和API使用 1.注册谷歌账号 要使用GA,必需先成为GOOGLE的注册用户,如果没有请去注册.当然,你有GMAIL邮箱就可以.邮箱就是帐户名. 2.开启Google Analytic ...