webpack打包技术

简介: webpack打包技术

webpack技术

webpack用途:Webpack 是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行打包。

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基于node.js运行,首先需要安装node.js。

1、先去下载:

node.js官网下载地址:

https://nodejs.org/en/download/

推荐下载LTS版本

2、安装完成检查PATH环境变量是否设置了node.js的路径。

3、测试

运行cmd,输入node -v

会显示当前的版本号

安装NPM

具体的可以参照这篇文章

https://www.cnblogs.com/jianguo221/p/11487532.html

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下载的依赖包所存放的路径)

node ‐v

NPM 默认的管理包路径在C:/用户/[用户名]/AppData/Roming/npm/node_meodules,为了方便对依赖包管理,我

们将管理包的路径设置在单独的地方,本教程将安装目录设置在node.js的目录下,创建npm_modules和

npm_cache,执行下边的命令:

本教程安装node.js在D:\Program Files\nodejs下所以执行命令如下:

npm config set prefix “C:\Program Files\nodejs\npm_modules”

npm config set cache “c:\Program Files\nodejs\npm_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

1)本地目录下安装:将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

测试:win + r输入cmd然后输入webpack,如果提示信息如下,则已经安装完成了。

vue_02.html

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Vue.js测试程序</title>
    <!--    <script src="vue.min.js"></script>-->
</head>
<body>
<div id="app">
    <a v-bind:href='url' >百度一下,你就知道</a>
    <!--    {{name}} &lt;!&ndash;相当于MVVM的view部分&ndash;&gt;-->
<!--    <span v-text="name"></span>-->
<!--    <span v-text='name'></span>-->
    <label>
        <input type="text" v-model="num1"/> +
        <input type="text" v-model="num2"/>
    </label>
    <span v-text="result"></span>
    <button v-on:click="change">计算</button>
</div>
</body>
<script type="text/javascript" src="build.js"></script>
</html>

model01.js

var add = function (x, y) {
    return x + y;
};
var add2 = function (x, y) {
    return x + y + 2;
};
module.exports.add = add;

main.js

var {add} = require('./model01.js');
var Vue = require('./vue.min.js');
var VM = new Vue({
    el: "#app",//表示当前vue对象接管app的div区域
    data: {
        name: '百度一下,你就知道',// 相当于是MVVM中的Model这个角色
        num1: 0,
        num2: 0,
        result: 0,
        url: 'http://www.itcast.cn'
    },
    methods: {
        change: function () {
            //这里使用了导入的model01.js文件中的add方法    
            this.result = add(Number.parseInt(this.num1), Number.parseInt(this.num2));
            alert(this.result)
        }
    }
});

这个是完成以后的目录结构:

然后在modulejs文件目录下,运行命令行窗口

输入webpack main.js build4.js

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7nEJe8za-1582427657465)(C:\Users\ZhouYanXiang\Desktop\picture\blog_Image\webpack\webpack打包.png)]

运行vue_02.html,运行结果如下:

在这个过程中遇到了一个坑:

我最开始把引入js的语句

<script type="text/javascript" src="build.js"></script>

放在了

里面

结果没有成功导入build.js文件,运行结果如下:

后来参考了这篇文章

https://www.cnblogs.com/xiangkejin/p/6411792.html

之后就搞清楚了

加载的顺序不一样,你可以把HTML看成从上往下加载的。

例如在网速慢的情况下把js代码放在body底部用户会先看到网页结构,等js加载完成后才出现特效

区别简述:

在HTML body部分中的JavaScripts会在页面加载的时候被执行。

在HTML head部分中的JavaScripts会在被调用的时候才执行,但是在主页和其余部分代码之前预先装载

相关文章
|
3月前
|
JavaScript
webpack打包TS
webpack打包TS
138 60
|
2月前
|
缓存 前端开发 JavaScript
Webpack 打包的基本原理
【10月更文挑战第5天】
|
2月前
|
前端开发 JavaScript
ES6模块化和webpack打包
【10月更文挑战第5天】
|
2月前
|
缓存 前端开发 JavaScript
深入了解Webpack:模块打包的革命
【10月更文挑战第11天】深入了解Webpack:模块打包的革命
|
3月前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
162 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
2月前
|
缓存 前端开发 JavaScript
Webpack技术深度解析:模块打包与性能优化
【10月更文挑战第13天】Webpack技术深度解析:模块打包与性能优化
|
2月前
|
缓存 前端开发 JavaScript
深入探讨Webpack及其关键技术
【10月更文挑战第11天】深入探讨Webpack及其关键技术
|
2月前
|
前端开发 JavaScript 开发者
深入了解Webpack:现代JavaScript应用的打包利器
【10月更文挑战第11天】 深入了解Webpack:现代JavaScript应用的打包利器
|
2月前
|
前端开发 JavaScript 开发者
Webpack不同技术的探讨
【10月更文挑战第11天】Webpack不同技术的探讨
|
2月前
|
前端开发 JavaScript 开发者
Webpack不同技术的探讨
【10月更文挑战第11天】Webpack不同技术的探讨