webpack入门 - Go语言中文社区

webpack入门


使用vue.js开发大型应用需要使用webpack打包工具,本节研究webpack的使用方法。

webpack介绍

Webpack 是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行打包
在这里插入图片描述

从图中我们可以看出,Webpack 可以将js、css、png等多种静态资源 进行打包,使用webpack有什么好处呢?
webpack的优点:

  • 1、模块化开发
    程序员在开发时可以分模块创建不同的js、 css等小文件方便开发,最后使用webpack将这些小文件打包成一个文
    件,减少了http的请求次数。
    webpack可以实现按需打包,为了避免出现打包文件过大可以打包成多个文件。
  • 2、 编译typescript、ES6等高级js语法
    随着前端技术的强大,开发中可以使用javascript的很多高级版本,比如:typescript、ES6等,方便开发,
    webpack可以将打包文件转换成浏览器可识别的js语法。
  • 3、CSS预编译
    webpack允许在开发中使用Sass 和 Less等原生CSS的扩展技术,通过sass-loader、less-loader将Sass 和 Less的
    语法编译成浏览器可识别的css语法。

webpack的缺点:

  • 1、配置有些繁琐
  • 2、文档不丰富

安装webpack

webpack基于node.js运行,首先需要安装node.js。

为什么会有node.js?
传统意义上的 JavaScript 运行在浏览器上,Chrome 使用的 JavaScript 引擎是 V8,Node.js 是一个运行在服务端
的框架,它的底层就使用了 V8 引擎,这样就可以使用javascript去编写一些服务端的程序,这样也就实现了用
javaScript去开发 Apache + PHP 以及 Java Servlet所开发的服务端功能,这样做的好处就是前端和后端都采用
javascript,即开发一份js程序即可以运行在前端也可以运行的服务端,这样比一个应用使用多种语言在开发效率上
要高,不过node.js属于新兴产品,一些公司也在尝试使用node.js完成一些业务领域,node.js基于V8引擎,基于
事件驱动机制,在特定领域性能出色,比如用node.js实现消息推送、状态监控等的业务功能非常合适。

安装Node.js

下边我们去安装Node.js:

  • 1、下载对应你系统的Node.js版本:
    https://nodejs.org/en/download/
  • 2 、选安装目录进行安装
    默认即可
    安装完成检查PATH环境变量是否设置了node.js的路径。
  • 3、测试
    在命令提示符下输入命令:node ‐v
    会显示当前node的版本

安装NPM

  • 1、自动安装NPM
    npm全称Node Package Manager,他是node包管理和分发的工具,使用NPM可以对应用的依赖进行管理,NPM
    的功能和服务端项目构建工具maven差不多,我们通过npm 可以很方便地下载js库,打包js文件。
    node.js已经集成了npm工具,在命令提示符输入 npm -v 可查看当前npm版本
  • 2、设置包路径
    包路径就是npm从远程下载的js包所存放的路径。
    使用 npm config ls 查询NPM管理包路径(NPM下载的依赖包所存放的路径)
    NPM 默认的管理包路径在C:/用户/[用户名]/AppData/Roming/npm/node_meodules,为了方便对依赖包管理,我
    们将管理包的路径设置在单独的地方,本教程将安装目录设置在node.js的目录下,创建npm_modules和
    npm_cache,执行下边的命令:
    本教程安装node.js在D:Program Filesnodejs下所以执行命令如下:
npm config set prefix "C:Program Filesnodejsnpm_modules"
npm config set cache "c:Program Filesnodejsnpm_cache"

此时再使用 npm config ls 查询NPM管理包路径发现路径已更改

  • 3、安装cnpm
    npm默认会去国外的镜像去下载js包,在开发中通常我们使用国内镜像,这里我们使用淘宝镜像
    下边我们来安装cnpm:
    有时我们使用npm下载资源会很慢,所以我们可以安装一个cnmp(淘宝镜像)来加快下载速度。
    输入命令,进行全局安装淘宝镜像。
npm install -g cnpm --registry=https://registry.npm.taobao.org

安装后,我们可以使用以下命令来查看cnpm的版本:cnpm -v

nrm ls 查看镜像已经指向taobao
使nrm use XXX切换 镜像
如果nrm没有安装则需要进行全局安装:cnpm install -g nrm

安装webpack

webpack安装分为本地安装和全局安装:

  • 本地安装:仅将webpack安装在当前项目的node_modules目录中,仅对当前项目有效。
  • 全局安装:将webpack安装在本机,对所有项目有效,全局安装会锁定一个webpack版本,该版本可能不适用某个
    项目。全局安装需要添加 -g 参数。

进入webpacktest测试目录目录,运行:

  • 1)本地安装:
    只在我的项目中使用 webpack,需要进行本地安装,因为项目和项目所用的webpack的版本不一样。本地安装就会
    将webpack的js包下载到项目下的npm_modeuls目录下。
    在门户目录下创建webpack测试目录webpacktest01:
    npm install --save-dev webpack 或 cnpm install --save-dev webpack
    npm install --save-dev webpack-cli (4.0以后的版本需要安装webpack-cli)
  • 2)全局安装加-g,如下:
    全局安装就将webpack的js包下载到npm的包路径下。
    npm install webpack -g 或 cnpm install webpack -g
  • 3)安装webpack指定的版本:
    本教程使用webpack3.6.0,安装webpack3.6.0:
    进入webpacktest测试目录,运行:cnpm install --save-dev webpack@3.6.0
    全局安装:npm install webpack@3.6.0 -g或 cnpm install webpack@3.6.0 -g

输入webpack,如下说明安装成功:
在这里插入图片描述

入门程序

通过本入门程序体会webpack打包的过程及模块化开发的思想。

需求分析

通过入门程序实现对js文件的打包,体会webpack是如何对应用进行模块化管理。

定义模块

创建webpacktest01目录,将vue.min.js及vue_02.html拷贝到目录下。
vue_02.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue.js常用指令的测试</title>
</head>
<body>
<!--实现在body区域显示一个传智播客名称-->
<div id="app">
    <!--相当于MVVM的view视图-->
    <!--{{name}}-->
    <a v-bind:href="url">
    <span v-text="name"></span>
    </a>
    <input type="text" v-model="num1"/> +
    <input type="text" v-model="num2"/>=
   <!-- <span v-text="Number.parseInt(num1)+Number.parseInt(num2)"></span>-->
    <span v-text="result"></span>
    <!--{{Number.parseInt(num1)+Number.parseInt(num2)}}-->
    <button v-on:click="change">计算</button>
    <div v-bind:style="{ fontSize: size + 'px' }">javaEE培训</div>
</div>
</body>
<script src="vue.min.js"></script>
<script>
    //编写MVVM中的model部分及VM(ViewModel)部分
    var VM = new Vue({
        el:'#app',//vm接管了app区域的管理
        data:{//model数据
            name:'黑马程序员',
            num1:0,
            num2:0,
            result:0,
            url:'http://www.itcast.cn',
            size:11
        },
        methods:{
            change:function () {
                this.result = Number.parseInt(this.num1)+Number.parseInt(this.num2)
                //alert("计算结果:"+this.result)
            }
        }
    });
</script>
</html>

1、定义model01.js
在webpacktest01目录下创建model01.js
将本程序使用的加法运算的js方法抽取到一个js文件,此文件就是一个模块
model01.js的代码如下:

var add = function (x, y) {
  return x+y;
}
var add2 = function (x, y) {
  return x+y+2;
}
module.exports.add = add;
// module.exports ={add,add2};//如果有多个方法这样导出
// module.exports.add2 = add2//如果有多个方法也可以这样导出

2、定义main.js
在webpacktest01目录下创建main.js,main.js是本程序的js主文件,包括如下内容:
1、在此文件中会引用model01.js模块
2、引用vue.min.js(它也一个模块)
3、将html页面中构建vue实例的代码放在main.js中。
main.js的代码如下

//导入model01.js
var {add} = require("./model01")
var Vue = require("./vue.min")
var VM = new Vue({
    el:'#app',//vm接管了app区域的管理
    data:{//model数据
        name:'黑马程序员',
        num1:0,
        num2:0,
        result:0,
        url:'http://www.itcast.cn',
        size:11
    },
    methods:{
        change:function () {
            this.result = add(Number.parseInt(this.num1),Number.parseInt(this.num2))
            // this.result = Number.parseInt(this.num1)+Number.parseInt(this.num2)
            //alert("计算结果:"+this.result)
        }
    }
});

打包测试

上边将mode01.js模块及main.js主文件编写完成,下边使用webpack对这些js文件进行打包

  • 1、进入程序目录,执行webpack main.js build.js ,这段指令表示将main.js打包输出为 build.js文件
    执行完成,观察程序目录是否出现build.js。
  • 2、在html中引用build.js
<!DOCTYPE html>
<html lang="en" xmlns:v‐on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF‐8">
    <title>vue.js入门程序</title>
</head>
<body>
<div id="app">
    <!‐‐{{name}}解决闪烁问题使用v‐text‐‐>
<a v‐bind:href="url"><span v‐text="name"></span></a>
<input type="text" v‐model="num1">+
<input type="text" v‐model="num2">=
<span v‐text="result"></span>
    <!‐‐{{num1+num2}}‐‐>
<!‐‐<input type="text" v‐model="result">‐‐>
    <button v‐on:click="change">计算</button>
    <!‐‐ 在Vue接管区域中使用Vue的系统指令呈现数据
    这些指令就相当于是MVVM中的View这个角色 ‐‐>
</div>
</body>
<script src="build.js"></script>
<script>
</script>
</html>

webpacktest01目录结构
在这里插入图片描述

  • 3、测试总结
    测试功能:
    1)输入任意加数,其和会自动计算
    2)点击“计算”会调用model01.js中的add方法
    总结:
    webpack可以将js分模块开发,开发完成对各模块代码打包成一个统一的文件。
    前端模块开发的思想和服务端模块开发的思想是一致的,有利于多人协助开发。

浏览器只需要加载build.js
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/LucasLi2016/article/details/104876351
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢