webpack入门记录

webpack是当下最热门的前端资源模块化打包工具,通过 loader 方式,号称任何资源都可以打包。它在编译的时候就直接将模块整理打包、压缩,而不像sea.js和require.js需要在页面中引用额外的文件管理,当然,各有不同。

安装

如果你还没有安装node.js的话,首先安装 node.js
使用npm安装webpack,或者使用cnpm速度更快。

npm install webpack -g

使用 -g 将webpack安装到全局环境下,安装完运行 webpack -h 命令试试。

一般会将webpack安装项目依赖中,这样就可以使用项目本地的webpack,据说效率会高一点;
先使用npm init创建创建package.json文件。

Package.json 属性说明
- name   包名。
- version  包的版本号。
- description  包的描述。
- homepage  包的官网 url 。
- author  包的作者姓名。
- contributors  包的其他贡献者姓名。
- dependencies  依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
- repository  包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
- main  一个模块ID,它是一个指向你程序的主要项目。就是说,如果你包的名字叫 express,然后用户安装它,然后require("express")。
- keywords - 关键字

将webpack写入项目依赖中:

cnpm install webpack --save-dev

如果需要使用 Webpack 开发工具,要单独安装:

cnpm install webpack-dev-server --save-dev

如何使用

项目首页index.html,入口文件entry.js:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <title>webpack</title>
    <link rel="stylesheet" href="dist/css/style.css">
</head>
<body>
    <h1>webpack</h1>
    <script src="dist/js/entry.js"></script>
</body>
</html>

entry.js:

document.write('hi webpack.');

执行命令将src/js/entry.js打包到dist/js/entry.js

webpack src/js/entry.js dist/js/entry.js

正常执行后会输出下面的日志:

Hash: 1931694bece61d881e02
Version: webpack 1.14.0
Time: 37ms
   Asset     Size  Chunks             Chunk Names
entry.js  1.42 kB       0  [emitted]  main
   [0] ./src/js/entry.js 30 bytes {0} [built]

打包后的dist/js/entry.js内容(没压缩的情况):


entry.js

一个简单基础的打包流程实现了,但其实webpack远不止这么简单,它非常强大,我们可以把一些功能写入到配置文件中,在项目的根目录下面创建一个webpack.config.js

var webpack = require('webpack');

module.exports = {
    entry: './src/js/entry.js',  // 入口文件
    output: {                    // 输出文件
        path: __dirname + '/dist/js/',
        filename: 'entry.js'
    }
};

然后再项目根目录运行webpack命令,会自动执行webpack.config.js里面的配置;
可以输入webpack --watch命令运行,会自动监听文件内容变化,自动打包;
如果开发环境和线上环境的配置有不一样的地方,也可以配置多个webpack.config.js文件,运行命令的时候通过webpack --config webpack-dev.config.js执行不同的配置;
还有很重要的一点,代码都打包了,我们调试代码是很不方便的,所以可以在开发环境的配置文件里面增加devtool: 'inline-source-map'

var webpack = require('webpack');

module.exports = {
    entry: './src/js/entry.js',  // 入口文件
    output: {                    // 输出文件
        path: __dirname + '/dist/js/',
        filename: 'entry.js'
    },
    devtool: 'inline-source-map'  //生成 sourcemap
};

更多配置,去查看官方的介绍吧。http://webpack.github.io/docs/configuration.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,843评论 7 110
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,350评论 7 35
  • 最近在学习 Webpack,网上大多数入门教程都是基于 Webpack 1.x 版本的,我学习 Webpack 的...
    My_Oh_My阅读 8,316评论 40 247
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 5,429评论 4 31
  • 昨天给刘锦言订了早教班,其实这个事儿我十分矛盾,纠结至抓耳挠腮,我是真不想他这么小就装进笼子里,让园丁们修剪的不成...
    小儿锦言阅读 1,263评论 1 3

友情链接更多精彩内容