webpack指南-webpack入门-开始使用webpack

简介: webpack用来在你的app中建立JS模块。为了从cli或api开始使用webpack,按照安装手顺即可。webpack通过快速构建app依赖图并以正确顺序打包来简化工作。

webpack用来在你的app中建立JS模块。为了从cli或api开始使用webpack,按照安装手顺即可。

webpack通过快速构建app依赖图并以正确顺序打包来简化工作。webpack可以配置来做代码定制优化,为产品划分vendor/css/js,运行一个热重载你的代码的开发服务器而不需要刷新页面之类的好特性。

继续学习以了解为什么你应该使用webpack

创建一个打包文件

创建demo来试用webpack。

mkdir webpack-demo && cd webpack-demo

npm init -y

npm install --save-dev webpack

./node_modules/.bin/webpack --help # Shows a list of valid cli commands

.\node_modules\.bin\webpack --help # For windows users

webpack --help # If you installed webpack globally

创建子目录/app并新建index.js

app/index.js

function component () {

    var element = document.createElement('div');

    /* lodash is required for the next line to work */

    element.innerHTML = _.join(['Hello','webpack'], ' ');

    return element;

}

document.body.appendChild(component());

为了运行这段代码,一般需要以下的HTML

index.html


In this example, there are implicit dependencies between thetags.

在这个示例中,标签中有隐式依赖。

index.js依赖在它运行之前引入的lodash。他是隐式依赖的原因是index.js从未声明lodash的需求,他只是假定有一个全局变量_存在。

但是如此维护JS项目有一些问题。

○如果依赖缺失,或者引入顺序错误,app将不能起作用。

○如果依赖被引入但未被使用,那么浏览器需要去下载很多不必要的代码。

为了将lodash依赖和index.js打包,我们需要首先安装lodash

npminstall--save lodash

然后导入


我们也需要更改index.html文件来仅仅需要一个bundle.js文件。


现在,index.js显示依赖lodash并将之与_绑定(没有全局作用域污染)

通过声明模块所需依赖,webpack可以以此信息创建依赖图。他将使用依赖图生成会以正确顺序执行的定制打包文件。当然,未被使用的依赖不会被打包。

运行webpack,以index.js为输入,bundle.js为输出,这个页面所必须的代码都将被打包好。


用浏览器打开index.html文件,观察成功打包后的结果,你应该会看到页面上出现Hello webpack的文字。

Using ES2015 modules with webpack

注意到app/index.js中使用的ES2015模块import(也称ES2015,harmony)了吗?虽然浏览器(暂时)不支持import/export,使用它们仍旧是好的,因为webpack会用ES5兼容封装代码替换那些命令。查看dist/bundle.js以验证。

注意,webpack除了import/export外不会初级你的代码。如果你在使用其他的ES2015特性,确保使用类似Bable或者Bublé这样的转换编译器。

Using webpack with a config

在更加复杂的配置情况下,我们可以使用配置文件让webpack为我们打包代码。创建webpack.config.js文件后,你可以用下面所示config设定来完成之前的CLI命令操作。


按照如下方式运行。


config文件提供了所有的灵活性。使用配置文件我们可以添加加载器规则,插件,解析选项以及很多其他增强到包中。

Using webpack with npm

通过CLI方式运行webpack并不有趣,我们可以更快捷,更改package.js:



现在你可以通过npm build命令完成同样功能了。npm找出scripts并临时合并到环境中这样就能包含bin命令了。你将会在大量项目中看到这个惯例。

结论

既然你拥有一个基础创建,你应该深入 基本概念 和 配置 章节来更好地理解webpack的设计。同时查看guides学习如何处理共通问题。API部分包含低级别特性用法。

目录
相关文章
|
7月前
|
JSON JavaScript 前端开发
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)(下)
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
97 2
|
JSON 前端开发 JavaScript
前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(一)
前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(一)
598 0
|
3月前
|
JSON 前端开发 JavaScript
不会webpack的前端可能是捡来的,万字总结webpack的超入门核心知识
该文章提供了Webpack的基础入门指南,涵盖安装配置、基本使用、加载器(Loaders)、插件(Plugins)的应用,以及如何通过Webpack优化前端项目的打包构建流程。
不会webpack的前端可能是捡来的,万字总结webpack的超入门核心知识
|
3月前
|
缓存 JSON 前端开发
webpack入门核心知识还看不过瘾?速来围观万字入门进阶知识
该文章深入探讨了Webpack的高级配置与使用技巧,包括Tree Shaking、开发与生产环境的配置差异、代码分割策略、预加载与预取技术的应用等方面的内容。
|
7月前
|
Web App开发 JSON 前端开发
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
262 0
|
7月前
|
存储 前端开发 JavaScript
Webpack【Webpack中模式(Mode)、Webpack中使用DevServer、Webpack中devtool增强调试过程】(二)-全面详解(学习总结---从入门到深化)
Webpack【Webpack中模式(Mode)、Webpack中使用DevServer、Webpack中devtool增强调试过程】(二)-全面详解(学习总结---从入门到深化)
209 0
|
7月前
|
JSON 前端开发 JavaScript
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)(上)
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
100 0
|
7月前
|
JSON 前端开发 JavaScript
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
98 0
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
|
7月前
|
前端开发 JavaScript
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)(上)
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
86 2