Webpack安装方式、webpack-dev-server、html-webpack-plugin、各种loader、Babel、vue如何使用

2024基于webpack从0搭建vue项目,vue2 ),// 自动清除 dist 目录插件// 配置 vue loader 插件],// 配置开启服务器的信息static: {},port: 80,}, 阅读详情

Webpack起步

为什么使用webpack

1.网页引用的静态资源(JS,CSS,Images,字体文件,模板文件)多了以后会发起很多的二次请求

2.要处理错综复杂的依赖关系

什么是webpack

基于前端的一个项目构建工具,是基于Node.js的一个前端工具,可以对项目进行合并、压缩、精灵图、图片的Base64编码

webpack两种安装方式

运行npm i webpack -g全局使用webpack命令

项目目录

在终端中输入npm init -y生成package.json配置文件

  • node_modules:执行cnpm i安装必要的包

  • dist

    • bundle.js

      解决js文件中的依赖问题,可以将所有的js、css、vue等打包生成唯一一个bundle.js文件

  • src:源代码

    • css
    • images
    • js
  • main.js : 项目的js入口文件,导入文件 :import ** form **,由于ES6的语法浏览器解析不了,需要执行webpack .\sec\main.js .dist\bundle.js命令,将main.js文键解析成为bundle.js文件存入到dist目录下

  • webpack.config.js : 通过Node中的模块操作,向外暴露了一个配置对象,此时执行webpack就可以自动执行将main.js解析成为bundle.js文件

    const path=require('path')
    module.exports={
        entry: path.join(_dirname,'./src/mian.js'),//入口文件
        output:{//出口文件
            path:path.join(_dirname,'./dist'),
            filename:'bundle.js'
        } 
    }
    
  • package.json

  • index.html

webpack-dev-server自动打包编译

第一种方式(推荐)

  1. 运行 npm i webpack-dev-server - D下载工具,安装到项目的本地开发依赖

  2. 注意,即使全局配置了webpack也需要本地安装webpack才能使用这个工具

  3. webpack-dev-server帮我们生成的bundle.js文件托管到了电脑的内存中,并不是实际存在于物理硬盘,所以项目根目录看不到这个打包好的bundle.js

  4. 在package.json配置文件中,找到“scripts",加入:

    “dev”: “webpack-dev-server --open --port 3000 --contentBase src --hot”

  5. 执行 npm run dev 就能自动打开端口为3000,根目录下的页面内容,此时显示的页面是上述项目目录中的index。启用了hot可以执行时只更新少量的代码,减少不必要的刷新请求。

第二种方式(了解)

image-20201006224157192

html-webpack-plugin

  1. 自动在内存中根据指定页面生成一个HTML页面
  2. 自动将打包好的bundle.js文件追加到正确的路径下面

在webpack.comfig.js文件中的 plugins 节点里面,加入:

const htmlWebpackPlugin=require('html-webpack-plugin')
new htmlWebpackPlugin({//创建一个在 内存 中生成HTML页面
    template: path.join(_dirname, './src/index.html'),
    filename: 'index.html'
})

webpack处理非js类型文件

默认情况下,webpack无法处理url地址,需要手动安装合适的第三方loader加载器,调用loader时是从后往前调用

  • 打包处理css文件

    1. 执行 cnpm i style-loader css-loader -D,安装两个加载器

    2. 在webpack.config.js里面新增一个配置节点叫做 module,是一个对象;module有一个rules属性,是一个数组,存放了所有第三方的匹配和处理规则

    3. module:{新的节点,配置所有第三方模块加载器
          rules:[//所有第三方的匹配规则
              {test:/\.css$/,use: ['style-loader','css-loader']},//匹配css文件
          ]
      }
      
  • 打包处理less文件

    1. 执行 cnpm i less-loader -D,安装加载器

    2.  {test:/\.less$/,use: ['style-loader','css-loader','less-loader']}
      
  • sass文件需要的loader:sass-loader(需要先安装node-sass)

  • 图片文件:

    {test:/\.jpg|png|gif|bmp|jepg$/,use :'url-loader?limit=7631&name=[hash:8]-[name].[ext]'}//hash值+原名+原后缀
    //limit给定的值是图片的大小,如果我们引用的图片>=limit值,则不会转为base64类型的字符串,如果小于给定的limit值则会被转为base64的字符串
    
  • 字体文件:

    {test: /\.ttf|eot|svg|woff|woff2$/,use: 'url-loader'},
    

Babel

安装两套包以获取webpack处理全部的ES6语法或者ES7语法

  1. cnpm i babel-core babel-loader babel-plugin-transform-runtime -D
  2. cnpm i babel-preset-env babel-preset-stage-0 -D

在webpack.config.js中module节点下的rules数组里面添加新的匹配规则:

{test:/\.js$/,use: 'babel-loader',exclude:/node_modules/}
//排除掉该目录打包速度很快,不用编译该目录下的所有js文件

在项目的根目录中,新建一个 .babelrc 的babel配置文件,该文件属于JSON格式,必须符合JSON语法规范:不能写注释,字符串必须用双引号。

{
    "presents":["env","stage-0"],
    "plugins":["transform-runtime"]
}

Render函数

在页面中渲染组件

var login = {
template:'<h1>登陆组件</h1>'
}

var vm = new Vue({
  el:'',
  data:{},
  methods:{},
  render: function (createElement){
      return createElement(login)//return的结果会替换页面中el指定的容器
  }
})

使用Vue

安装vue的包: cnpm i vue -s

  • 类似于普通vue实例使用方式

    1. import Vue from ‘…/node_modules/vue/dist/vue.js’

    2. import Vue from ‘vue’

      在webpack.config,js中加入

      resolve:{
          alias:{//修改vue被导入时的路径
              "vue$": "vue/dist/vue.js"
          }
      }
      
  • render函数渲染组件

    1. 定义一个纯粹的组件:login.vue

      这是使用.vue定义的组件

    2. 导入login.vue组件

      import login from './login.vue'
      
    3. 新增配置项

      cnpm i vue-loader vue-template-compiler -D

      {test:/.vue$/,use:‘vue.loader’}

    4. 使用render函数渲染组件

       render: function (createElement){
            return createElement(login)//return的结果会替换页面中el指定的容器
        }
      
      //下面是简写
      render: c => c(login)
      

模块间暴露成员

在一个模块中。可以使用export default(暴露一次)和export(暴露多次)成员

  • export default向外暴露的成员可以使用任意的变量来接收

    //暴露成员的模块
    export default{
        name:'zhangsan',
        age:'18'
    }
    
    //接收成员的模块
    import suiyi from './test.js'
    
  • export暴露的成员只能使用{ }的形式来接收,这种方式叫做按需导出

    //暴露成员的模块
    export var title='lalala'
    export var content="star"
    
    //接收成员的模块
    import {title as changed,content} from './test.js'//as起别名
    console.log(changed+comtent)
    

webpack-vue-router

import Vue from 'vue'
//1,导入包
import VueRouter from 'vue-router'
//2,手动安装
Vue.use(VueRouter)
//导入组件
import app from './App.vue'
import aa from './main/AA.vue'
import bb from './main/BB.vue'

//导入aa的子组件
import a1 from './subcom/A1.vue'
import a2 from './suncom/A2.vue'

//3,创建路由对象
var router=new VueRouter({
    routes:[
        {path: '/aa',
         component:aa,
        chirldren:[
            {path: '/a1',component:a1},
            {path: '/a2',component:a2}
        ]
        },
        {path: '/bb',component:bb}
    ]
})
var vm = new Vue({
    el:'#app',
    render:c => c(app)//把el控制的区域渲染成为app组件,所以将路由链接放在app组件中
    //4,挂载路由对象到vm上
    router
})
<template><div>
    <h1>
        这是aa组件
    </h1>
    <router-link to="/aa/a1">这是a1组件</router-link>
    <router-link to="/aa/a1">这是a2组件</router-link>
    <router-view></router-view>
    </div>
</template>
<script></script>
<style></style>
<template><div>
    <h1>
        这是bb组件
    </h1>
    </div>
</template>
<script></script>
<style></style>
<template><div>
    <h1>
        这是app组件
    </h1>
    <router-link to="/aa">aa</router-link>
    <router-link to="/bb">bb</router-link>
    <router-view></router-view>
    </div>
</template>
<script></script>
<style lang="scss" scoped>
    <!--.vue组件中定义的样式,推荐开启scoped标签,样式只在组件中使用,通过css选择器实现的;
    lang属性指定样式语法
    -->
    
</style>
CREO5.0二次开发+VS2019配置详解 CREO5.0+VS2019配置更新 一、CREO5.0 配置 二、Visual Studio 2019配置 新建MFC DLL项目 文件>新建>项目,选择MFC DLL,如下图所示 项目名称CREO1 2、配置设置 打开项目属性: 配置资源管理器设置: 设置包含目录、库目录(根据自己CREO的安装位置来设置): 包含目录: 库目录: 预处理器设置: 把下面文字复... 阅读详情

相关推荐

【ERROR】ERROR1: PROJ: proj_create_from_database: Cannot find proj.db - 环境变量配置与路径修复指南

本文详细解析了地理空间数据处理中常见的【ERROR】ERROR1: PROJ: proj_create_from_database: Cannot find proj.db 错误。该错误的根源是PROJ库无法定位其核心数据文件proj.db。文章提供了从问题诊断到修复的完整指南,包括如何在不同系统(Windows/macOS/Linux)和安装方式(Conda/pip/源码编译)下找到正确的proj.db文件路径,并通过设置PROJ_LIB环境变量(临时、代码内或永久)彻底解决问题,同时给出了进阶排查技巧和

m2n3o4p5的博客 557

如何安装nodejs、webpack

前言: 我在b站上面学习Vue的时候需要使用webpack进行模块化,那就安装webpack,老师说由于webpack需要nodejs的支持,所以我们还需安装nodejs,所以我就先安装nodejs,然后在安装webpack 第一步:安装nodejs 下载: 老师上面nodejs的版本是10.13.0,所以我也安装该版本,在nodejs官网上面是最新的12.8.4,这不符合我的要求,于是我找到了所有nodejs历史版本的链接(https://nodejs.org/dist/),由于我本次使用的nodejs版

qq_42449963的博客 1万+

Ubuntu22.04中通过conda快速部署PyTorch开发环境(CPU/GPU双版本实战)

本文详细介绍了在Ubuntu22.04系统中,如何利用Conda高效部署PyTorch开发环境。文章分别提供了CPU与GPU双版本的实战教程,涵盖环境创建、镜像加速、版本匹配及深度验证等关键步骤,旨在帮助开发者快速搭建稳定、兼容的深度学习环境,从而专注于模型开发。

rose2的博客 558

node安装及webpack安装

nodejs安装: 1.下载:https://nodejs.org/en/blog/release/v6.11.0/ (个人推荐老版本的,新版本的可能会出现webpack不兼容的状况) 2.安装node-v6.11.3-x64.msi文件,直接傻瓜式下一步。。。; (安装地址记一下,我的是 C:\Program Files\nodejs\) 3.验证是否完成安装:cmd 进入后输入命令 ...

qq_31799003的博客 648

大白话讲解Numpy中什么是一维、二维、三维数组,以及5种创建方式

NumPy中提供了多种创建数组的方式,其中最基本的方式就是通过array()函数创建数组在使用该函数时直接传入列表或元组即可。 通过array()函数分别创建一维数组、二维组和三维数组,那么什么是维度呢?一维、二维、三维有什么区别? 1、什么是维度? 维度可以理解为描述数据的一种 “方向” 或者 “层次”。在数组中,维度的数量决定了我们需要用多少个索引来访问一个元素 2、一维、二维、三维的区别? (1)一维:一维数组就像是一条直线上排列的一组数据,例如: a = np.array([1, 2

1365

《IC验证必看|IC验证的全流程概览(从DUT到回归交付)》

本文系统介绍了IC验证的全流程,从理解设计需求到最终交付验证结果。主要内容包括:1)深入理解DUT的功能和接口;2)制定详细的测试计划(Testplan);3)搭建UVM验证平台;4)执行定向和随机测试并进行回归;5)分析功能、代码和断言覆盖率;6)交付完整的验证报告。文章强调验证是一个闭环过程,特别指出新手容易忽视测试计划和覆盖率分析这两个关键环节,导致验证不充分。文末还提出思考题,引导读者反思验证计划的制定方法。

m0_46663240的博客 1261

前端nodejs组件 webpack

概念 Webpack 是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行打包 从图中我们可以看出,Webpack 可以将js、css、png等多种静态资源 进行打包,使用webpack有什么好处呢? 1、模块化开发 程序员在开发时可以分模块创建不同的js、 css等小文件方便开发,最后使用webpack将这些小文件打包成一个文 件,减少了http的请求次数。 webpack可以实现按需打包,为了避免出现打包文件过大可以打包成多个文件。 2、 编译typescript、ES6等

硬核编程乐乐的博客 532

基于STM32L4XX、HAL库的BQ25713RSNR充电芯片驱动程序设计

define BQ25713_I2C_ADDR (0x6B << 1) // 7位地址为 0x6B,HAL库需要左移一位。// 示例:配置 CHARGE_OPTION_0 寄存器:使能充电,使能 ICO(输入电流优化)reg_data |= (EN_CHG_MASK | EN_ICO_MASK);

zhusl6688的博客 406

window下安装node.js并安装cnpm、webpack、webpack-dev-server

我用的node.js的版本是9.4,如果没有什么特别需求的话,建议安装跟着这个版本安装。 到nodejs的官网下载 https://nodejs.org/en/download/ 滚动到页面底部,选择以前的版本 找到nodejs9.4的版本,点击download进入https://nodejs.org/download/release/v9.4.0/,自行选择64位的或32位的 下载完成后点...

weixin_43569697的博客 1485

微信小程序 - 最新详细实现气泡菜单功能,点击任意元素在底部或附近周围弹出气泡菜单列表,仿微信气泡弹框显示菜单快捷功能收纳,自定义气泡弹窗/菜单气泡弹窗,小程序气泡框嵌套菜单组件插件,自动计算弹出定位

微信小程序,vue2,vue3,气泡列表,汽泡菜单,气泡框,泡泡框,悬浮框,悬浮菜单,点击菜单按钮弹出气泡,对话箭头气泡框,弹出的气泡准确定位并吸附在附近,弹出式气泡,弹窗菜单,气泡自定义HTML弹窗,带三角的气泡弹框,三角气泡框里面嵌套菜单,当点击一个按钮或元素时,会从附近弹出一个小气泡一样的菜单列表,自定义气泡框内的内容,点击一个元素在附近弹出一个气泡弹框功能效果,气泡弹框不准怎么办,被盖住了,挡住了,长按弹出,组件插件,微信,自定义气泡菜单组件,气泡弹出框,小程序自定义气泡框,菜单气泡,包裹列表的三角

🏆 前端领域优质创作者 3922

一种白平衡增益计算中白点权重计算简易实现方式

一种白平衡白点距离权重简易实现方式

大熊 384

前端构架配置(二):node.js、 webpack、css-loader、html-loader、style-loader、webpack-dev-server等插件安装总出错解决方式

众所周知,如果我们需要用到webpack打包,则需要做很多准备工作,包括node.js的安装,webpack等的安装。 这个安装过程总会出现各种安装不成功的情况。这里不细说各种情况,直接给出一个最通用的解决方案。 方案如下:核心是配套好各个插件的版本号,如果版本号没有配套好,会出现诸如此类的错误: 这里直接给出一套能够适...

qq_41800210的博客 706

Docker:快速部署 Temporal 工作流引擎的技术指南

Temporal是一个开源的分布式工作流引擎,适用于复杂业务流程(如订单处理、支付流程等),提供状态持久化、自动重试、多语言SDK支持等特性。部署简单,支持Docker Compose,包含核心服务、Web UI及数据库。以TypeScript为例,开发者可快速编写工作流(如订单处理)和Worker,通过CLI或SDK启动和管理。Temporal简化了分布式系统的可靠性设计,适合电商、自动化任务等场景。

木头 643

webpack

webpack 文章目录webpack1. webpack1.1 静态资源多了带来的问题1.2 如何解决上述问题2. webpack的使用2.1 webpack的安装2.2 webpack的使用2.2.1 项目搭建思路2.2.2 webpack的作用2.3 webpack的配置文件webpack.config.js2.4 自定义配置文件2.5 执行webpack之后发生了什么2.6 配置多个入口...

iamzhiyudong 4020

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

超详细 webpack与其插件的安装配置 loader安装配置

webpack​1.安装 @是指定版本号 -S或者--save是把安装的东西到dependencies(开发或者上线都需要用到的宝放这里) -D或者--save-dev把安装的东西到devDependencies(开发需要用到,但是上线不需要用到放这里) npm安装东西的时候可以打开npmjs.com,这里面会知道是用d还是s2.配置webpack 下面的mode有两个值为development和production,意为开发中和发布 值为development的话不会把代码压缩,打包代码的时间很快..

weixin_53862758的博客 1301

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

webpack 的基本使用

1. 什么是 webpack 概念:webpack 是前端项目工程化的具体解决方案。 主要功能:它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端 JavaScript 的兼容性、性 能优化等强大的功能。 好处:让程序员把工作的重心放到具体功能的实现上,提高了前端开发效率和项目的可维护性。 注意:目前 Vue,React 等前端项目,基本上都是基于 webpack 进行工程化开发的。 2.在项目中安装 webpack 在终端运行如下的命令,安装 webpack

weixin_48341937的博客 2250

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【vue篇】 第一话--前端工程化与 webpack

·🤱作者简介:大家好!我是陪我吹吹海風吧。 ·🤱个人主页:[陪我吹吹海風吧](https://blog.csdn.net/qq_58203144?spm=1011.2266.3001.5343) ·🤱作者简介:大家好!我是陪我吹吹海風吧。 ·🤱作者简介:大家好!我是陪我吹吹海風吧。 ...

qq_58203144的博客 1517

Vue学习前置——配置webpack

因为原来已经安装过了这里就放一个我老师的博客吧 安装node.js在刚才的命令提示行中输入 为什么加了参数S下面会解释完成之后我们进入vscode然后打开package.json 我们能看见在 dependencies下有jquery 上面命令中的 -S 是–save的简写为告诉npm jquery下载好了之后帮我导入package.json的文件里创建index.html文件并且输入9行项目 在index.js文件中我们写入奇偶变色的代码 我们运行index.html之后发现报错 通过查询发现

成长过程 1698

Vue2工程化 webpack配置 loader插件

ctrl+c连按两下终止 模块化:JS的复用 组件化:UI样式的复用 Webpack: 前端工程化具体解决方案 gulp:前端自动化任务管理工具(旧) webpack核心:模块化(互相依赖强) 模块指css / 图片 webpack核心为模块化开发:处理模块间的依赖关系 代码压缩、处理兼容性问题(高级语法开发效率快,转成低级语法解决浏览器兼容性问题)、性能优化 模块化后打包, 主要功能是(将代码 / 图片)压缩,TS转JS等过程只是附加...

MOEIAW的博客 1323

基于 webpack 5 搭建 Vue 脚手架

对于基本项目来说,基本的开发依赖有:webpack、webpack-cli、vue-loader、vue-template-compiler、sass-loader、sass、css-loader、style-loader、babel-loader、@babel/core、@babel/preset-env loader的作用是把代码中进行编译,转换。webpack-cli:这个cli提供了webpack的终端命令去调用webpack。vue-loader:把vue的代码转化成js代码,vue.loade

qq_920189602的博客 1872

Vue学习之前端工程化与webpack

学习Vue的前置知识 必备前提: 1、HTML+CSS+JavaScript。 2、WebAPI(DOM和BOM)。 3、Ajax。 可有可无的前提:Node.js 正文 学习目标 小白眼中的前端开发VS实际前端开发 什么是前端工程化 前端工程化解决方案 早期那个就了解就行了,早被淘汰了,然后parcel主要是应用于开发第三方包的时候用的比较多,所以前端工程化主要还是通过webpack解决。 webpack 什么是webpack 概念:webpack是前端项目工程化的具体解决方案。 主要功能:它提供

qq_53324833的博客 1877

vue相关webpack配置

vue相关webpack配置 一.安装webpack 创建文件夹,进入文件夹执行 //初始化项目 npm i //安装webpack npm install --save-dev webpack webpack-cli 在当前目录创建webpack.config.js文件 const path = require('path') module.exports = { entry: 'main.js', output: { path: path.resolve(__dirn

weixin_42291355的博客 150

webpack笔记

webpack是一个前端资源加载/打包工具,它将根据模块之间的依赖关系进行静态分析,然后将这些模块根据指定规则生成静态资源。比如将常规的浏览器能够识别的静态资源类文件(html、js、css、jpg等)、以及浏览器本身不能识别的文件(模板文件hbs文件、CommonJS的cjs文件、样式文件sass、less文件),转换并打包成几个独立的静态文件,给浏览器识别,并且能够减少浏览器访问网站时的请求次数。

kenzo2017的博客 240

webpack3升级到webpack4遇到的问题

因项目需要,要将webpack3升级到webpack4,升级前版本webpack@3.6.0 安装webpack4 npm install webpack webpack-cli --save-dev 安装完成 安装完成运行项目报错: 1.报错:Error: Cannot find module 'webpack/bin/config-yargs’ 原因:webpack 和 webpack-dev-server版本不匹配,更新webpack-dev-server 更新之后版本3.11.0 ...

龙马的猫 929

简述--webpack搭建Vue项目基本结构

简述–webpack搭建Vue项目基本结构 文章目录简述--webpack搭建Vue项目基本结构1. 初始化项目2. 安装webpack、webpack-cli3. 搭建基本的目录结构4. 配置webpack.config.js文件5. webpack-dev-server6. html-webpack-plugin7. css-loader、style-loader、less-loader8. ...

iamzhiyudong 1248

webpack使用配置

Webpack使用配置 运行 webpack ./js/main.js -o ./js/bundle.js

weixin_45838680的博客 299
上一篇: 完整创建vue/cli4运行环境,vue/cli2、3、4的使用区别以及连接桥
下一篇: 利用vue-cli4构建一个webpack项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值