webpack原理及使用

前端打包工具有webpack、grunt、gulp等,这里主要介绍webpack.

一、webpack的基本能力:处理依赖、模块化、打包

     1、依赖管理:方便引用第三方模块,让模块更容易复用、避免全局注入导致的冲突、、避免重复加载或者加载不必要的模块

     2、合并代码:把各个分散的模块集中打包成大文件,减少HTTP的链接的请求次数,配合uglify.js可以减少、优化代码的体积

     3、各种插件:babel把ES6+转化为ES5-,eslint可以检查编译时的各种错误

二、webpack的工作原理

      简单的说就是分析代码,找到“require”、“exports”、“define”等关键词,并替换成对应模块的引用。

      在一个配置文件中,指明对某些文件进行编译、压缩、组合等任务。把你的项目当成一个整体,通过一个给定的主文件              (index.js),webpack将从这个文件开始找到你的项目的所有的依赖文件,使用loaders处理他们,最后打包为一个浏览器可

      以识别的js文件。


在没有使用webpack之前:

举个例子:index.html里面有一大堆的css和js文件,如a.js   b.js     c.js等等

(1)a.js要用到b.js里面的饿一个函数,则a.js要放在b.js后面

(2)c.js要用到a.js里面的一个函数,则c.js要放在a.js后面

(3)b.js又要用到某个js文件里面的函数,则b.js就要放在其后面

如果有N多个js文件,需要手动处理他们的关系,即容易出错。


使用webpack:

webpack的理念就是一切皆模块化,把一堆的css文件和js文件放在一个总的入口文件,通过require引入,剩下的事情webpack会处理,包括所有模块的前后依赖关系,打包、压缩、合并成一个js文件,公共代码抽离成一个js文件、某些自己指定的js单独打包,模块可以是css/js/imsge/font等等。


三、使用场景

1、根据模板生成HTML,并自动处理上面的css/js引用路径

2、自动处理<img>里面的图片路径,css里面背景图的路径,字体引用

3、开启本地服务器,一边改写代码,一边自动更新页面内容

4、编译jsx    es6     sass     less    coffescript等,并添加md5、sourcemap等辅助

5、异步加载内容,不需要时不加载到DOM

6、配合vue.js    react.js等框架开发


四、使用webpack打包项目的操作流程

准备条件:安装好npm和webpack

node.js:下载路径,下载完之后安装,安装完之后在cmd面板输入  node   -v    出现版本号说明安装成功,输入  npm   -v出                    现版本号说明自带的npm也安装成功。

webpack:使用npm全局安装webpack,在cmd面板输入   npm   install   -g   webpack

                  使用npm在项目中安装webpack,在项目路径下,在cmd面板中输入  npm   install   webpack    --save-dev

                  ( --save-dev表示开发时候依赖的东西,  --save是开发之后还依赖的东西 )


下面详细介绍打包的整个过程

1、在cmd中,执行npm init(目录是 D:\php_Study\WWW\webpack),如图所示

如果没有需要修改的话可以一直按下enter键,直到出现yes/no,输入yes按下enter键,就会在文件夹webpack下生成配置文件package.json。如果要修改的话可以自己定义:

name:项目名称

version:项目版本号

description:对这个项目的描述,或者描述使用webpack的那些功能

entry point:入口文件名

test command:测试时候的命令

git repository:git上面的仓库名

keywords:关键词

author:作者名字

license:许可证


这一步完成之后,在webpack文件夹下的内容为:



2、将webpack安装在项目里面,即和package.json统计目录

在cmd里面输入:npm  install   webpack  --save-dev


这里会等待一段时间如下图所示


安装完之后在根目录下会多出node_modules文件夹,然后就可以写自己的东西了。



3、在webpack文件下建立文件夹app、public,在文件夹app下新建两个文件test.js和index.js(入口文件),在public文件夹下新建index.html文件,这样就完成项目的基本雏形



4、在index.html里面输入下面内容


  
  
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>test webpack </title>
  6. </head>
  7. <body>
  8. <div id="root"> </div>
  9. <script type="text/javascript" src='bundle.js'> </script>
  10. </body>
  11. </html>


5、在test.js里面写上内容如下


  
  
  1. // test.js
  2. module.exports = function(){
  3. var test = document.createElement('div');
  4. test.textContent = 'here,we are test webpack!';
  5. return test;
  6. };


6、在index.js里面将test.js的方法引进来


  
  
  1. // index.js
  2. // 将创建的div元素加进去index.html里面的id=root的元素里面,作为子元素
  3. var test = require('./test.js');
  4. document.getElementById('root').appendChild( test() );


7、下面就可以使用webpack工具进行打包了。在项目根目录下(webpack文件夹下)执行命令:

      node_modules/.bin/webpack  app/index.js   public/bundle.js

      解释:app/index.js 表示项目的入口文件,也就是package.json中的“main”属性对应的值

                public/bundle.js表示打包后的文件命名为bundle.js,存放在public文件夹下

但是打包的时候出现下面的问题:

此问题咱未解决..............



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 和 Webpack 是开发现代前端应用程序的两个重要工具。Vue 是一个用于构建用户界面的渐进式 JavaScript 框架,而 Webpack 是一个模块打包工具。 Vue 的核心思想是将界面的不同部分抽象为组件,每个组件有自己的模板、样式和逻辑。Vue 在运行时会解析组件,并且通过虚拟 DOM 的方式进行高效的渲染和更新。 Webpack 则是一个用于打包模块的工具。它可以将各种类型的资源文件(JavaScript、CSS、图片等)作为模块进行处理,并将它们打包成静态文件,以用于浏览器端的加载和运行。 在 Vue 项目中使用 Webpack,通常会通过 webpack.config.js 文件进行配置。在配置中,我们可以定义入口文件、输出目录、加载器(Loaders)、插件(Plugins)等。 入口文件指定了 Vue 应用程序的入口点,通常是一个 JavaScript 文件。Webpack 会从这个入口文件开始,分析依赖关系,并且构建整个应用程序的依赖图。 加载器是用于处理各种类型文件的模块转换器。例如,Babel-loader 可以将 ES6+ 的 JavaScript 代码转换为兼容各种浏览器的 JavaScript 代码;CSS-loader 可以处理 CSS 文件,并将其转换为 JavaScript 对象;File-loader 可以处理图片文件,并将其转换为可在浏览器中使用的 URL。 插件是用于扩展 Webpack 功能的工具。例如,Vue-loader 插件可以将 Vue 的单文件组件(.vue)转换为 JavaScript 代码;HtmlWebpackPlugin 插件可以自动生成 HTML 文件,并将打包后的静态文件自动引入到 HTML 中。 总结起来,Vue 使用 Webpack 实现了模块化的开发方式,通过加载器和插件的配合,可以实现对各种类型文件的处理和打包。这样就能够以组件化的方式构建 Vue 应用程序,并且通过 Webpack 进行打包和优化,使应用程序更加高效和可维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值