webpack配置

4-3vue-loader测试_哔哩哔哩_bilibili
一.新建文件夹vue_todo,vscode打开

二.ctrl+`打开终端,输入npm init -y,快速生成一个默认的package.json文件

之后左边出现项目初始化文件package.json

三.接下来需要webpack完成打包,所以安装webpack和webpack-cli
(-D是安装开发环境依赖,是--save-dev的简写)

四.编写主页文件index.html,div标签id为app

五.创建src目录,在src目录下创建main.js作为项目入口文件

1.导入vue

2.new关键字创建vue根实例

  • el:'#app' 接管index.html中id为app的元素内容
  • components:{App:App} 注册App组件
  • 在template标签中渲染App组件标签

要实现1,则要安装vue , 终端输入 npm install  vue

安装完成之后出现

然后impotr导入vue对象

要挂载App组件,先要创建App组件

在src文件夹下新建



index.html主页文件

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>todo应用</title>
</head><body><div id="app"></div>
</body></html>

main.js项目入口文件

// 一.创建Vue根实例,导入vue
import Vue from 'vue'// 导入App组件
import App from './App.vue'// new关键字创建vue根实例
new Vue({el: '#app', //接管index.html中id为app的元素内容components:{// 组件名:组件对象(组件名是自己起的,组件对象是导入的)App:App //键和值相同可以直接写为App}, //有了App名称,就可以在template中渲染这个标签template: '<App/>' //App是组件名,在template中渲染这个标签})
// .挂载App组件

App.vue根组件

<template><div>App</div>
</template>
<script>
</script>
<style>
</style>

总而言之,

就是main.js项目入口文件导入并创建vue实例

  • 实例接管了index.html主页文件(以id的方式)
  • 注册挂载App根组件(在components)
    在template标签中渲染根组件<App />


 

 在index.html文件中引入main.js测试

在index.html文件的script中导入maIn.js文件

浏览器打开index.html发现报错,不能识别main.js中的import等内容

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>todo应用</title>
</head><body><div id="app"></div><script src="./src/main.js"></script>
</body></html>

为了使webpack进行正常解析,这时就需要使用webpack将源代码进行打包

1.在工作目录下,新建webpack.config.js默认配置文件

2.使用module.exports = { } 导出一个对象,该对象是webpack的一个配置。改配置有最基本俩

  • 打包入口文件 ertry(告诉webpack从哪个文件夹开始打包,从src的main.js开始打包)
  • 打包出口文件output(将所有文件生成的文件放到哪里,指定filename,path指定打包的绝对路径,所以需要node提供的path模块)
// 导入path模块
const path = require('path')
module.exports = {// 打包入口entry: './src/main.js',// 打包出口output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist') //在当前目录的绝对路径下指定dist这个目录}
}

也就是在根目录下创建了一个dist目录,打包生成的的文件叫做bundle.js

使用webpack命令完成打包的过程

npx webpack在node_modules下找webpack并执行,执行的该webpack就会去加载webpack.config.js的配置文件,根据指定的入口出口生成对应的文件

但是一般npx比较麻烦,所以在pack.json中编写脚本帮助完成命令


然后就能使用npm run bulid这个指令了,这个就是打包命令

注意,不要安装成vue3了,现在在学习Vue2,安装错误通过npm uninstall vue卸载,通过npm install  vue@2.6.11可以安装特定版本



npm run build安装出错,webpack不能解析vue文件,它只能解析打包js文件。所以需要通过第三方loader解析

PS D:\vue框架学习\vue_todo> npm run build> vue_todo@1.0.0 build
> webpack./src/App.vue 81 bytes [built] [code generated] [1 error]WARNING in configuration
The 'mode' option has not been set, webpack will fallback to 'production' for this value. 
Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/ERROR in ./src/App.vue 1:0
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> <template>
|   <div>App</div>
| </template>@ ./src/main.js 5:0-27 12:9-12webpack 5.96.1 compiled with 1 error and 1 warning in 1766 ms

使用vue-loader来打包vue文件(vue-loader完成模板的编译)

安装完成发现vue-loader依赖css-loader,然后又安装css-loader


接下来进行webpack相关配置

从vue-loader@15开始,vue-loader需要在webpack中添加一个插件

在webpack.config.js中配置打包规则
( 打包规则,test表示正则表达式,匹配以vue结尾的文件,以vue-loader来打包)


配置好之后在webpack.config.js中写一个插件

然后将该插件写入打包规则中



 

// 导入path模块
const path = require('path')// 导入vue-loader 的插件
const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {// 打包入口entry: './src/main.js',// 打包出口output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist')},//打包规则,test表示正则表达式,匹配以vue结尾的文件,以vue-loader来打包module: {rules: [{test: /.\vue$/,loader: 'vue-loader'}]},// 插件plugins: [new VueLoaderPlugin()]
}


配置好之后执行打包npm run build命令

成功之后,根目录出现dist文件夹,文件夹中有bundle.js文件



webpack配置完成之后需要指定webpack是用于生产环境还是开发环境


这里指定webpack用于生产环境之后继续执行npm run build

就能看到打包出来的文件大小

如果设置为开发环境时,执行打包命令文件会大点



在主页文件index.html文件中引入bundle.js进行测试


 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/474500.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5.STM32之通信接口《精讲》之USART通信---实验串口接收程序

根据上节&#xff0c;我们一已经完成了串口发送程序的代码&#xff0c;并且深入的解析探索了串口的原理&#xff0c;接下来&#xff0c;Whappy小编将带领大家进入串口接收程序的探索与实验&#xff0c;并将结合上一节串口发送一起来完成串口的发送和接收实验。 上来两张图 上图…

leetcode 扫描线专题 06-leetcode.836 rectangle-overlap 力扣.836 矩形重叠

题目 矩形以列表 [x1, y1, x2, y2] 的形式表示&#xff0c;其中 (x1, y1) 为左下角的坐标&#xff0c;(x2, y2) 是右上角的坐标。 矩形的上下边平行于 x 轴&#xff0c;左右边平行于 y 轴。 如果相交的面积为 正 &#xff0c;则称两矩形重叠。 需要明确的是&#xff0c;只在…

ASP.NET MVC宠物商城系统

该系统采用B/S架构&#xff0c;使用C#编程语言进行开发&#xff0c;以ASP.NET MVC框架为基础&#xff0c;以Visual Studio 2019为开发工具&#xff0c;数据库采用SQL Server进行保存数据。系统主要功能包括登录注册、宠物展示、个人中心、我的订单、购物车、用户管理、宠物类别…

最优化方法_罚函数法例题

1 外点罚函数 算法1 外点罚函数法 给定初点&#xff0c;初始罚因子,放大系数&#xff0c;允许误差&#xff0c;置k1。以为初始点&#xff0c;求解无约束问题得最优解。如果,则停止计算&#xff0c;为约束问题的近似最优解&#xff1b;否 则&#xff0c;增大罚因子&#xff0c;令…

python调用MySql保姆级教程(包会的)

目录 一、下载MySql 二、安装MySql 三、验证MySql是否OK 1、MySQL控制台验证 2、命令提示符cmd窗口验证 四、Python调用MySql 4.1 安装pysql 4.2 使用pysql 4.2.1、连接数据库服务器并且创建数据库和表 4.2.2 、将人脸识别考勤系统识别到的数据自动填入到数据库的表单中…

【鸿蒙生态崛起,开发者有哪些机遇与挑战?】HarmonyOS NEXT 引领数字化未来

文章目录 前言一、HarmonyOS NEXT 特点与升级二、全面突破操作系统核心技术三、鸿蒙生态全面守护用户隐私四、鸿蒙生态的崛起与开发者机遇五、全新鸿蒙生态引领数字化未来小结 前言 鸿蒙系统不断发展&#xff0c;有与安卓、iOS 形成三足鼎立之势&#xff0c;且其在智能手机、智…

ssh无法连接Ubuntu

试了多次ssh都无法连接&#xff0c;明明可以上网 网卡、防火墙、端口都没有问题&#xff0c;就是连接不上 结果是这个版本Ubuntu镜像默认没有安装ssh服务 安装SSH服务&#xff1a;apt-get install openssh-server 开启SSH服务&#xff1a;/etc/init.d/ssh start 就可以连接…

基于Java Springboot外卖平台系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数…

vue2动态导出多级表头表格

需求&#xff1a;导出多级表格&#xff0c;如下&#xff0c;每个人名对应的是不同的城市金钱和年龄&#xff0c;日期占俩行&#xff0c;需要根据数据进行动态展示 1.效果 2.关键代码讲解 2.1数据源 2.2所需插件 npm install xlsx 2.3关键代码 创建name组和date组&#xff0c…

散户持股增厚工具:智能T0算法交易

最近市场很多都说牛市&#xff0c;但是大多数朋友怎么来的又怎么吐出去了。这会儿我们用T0的智能算法交易又可以增厚我们的持仓收益。简单来说&#xff0c;就是基于用户原有的股票持仓&#xff0c;针对同一标的&#xff0c;配合智能T0算法&#xff0c;每天全自动操作&#xff0…

独立开发:一人公司模式下副业产品的全流程

在数字经济的浪潮下&#xff0c;越来越多的开发者选择成为自由职业者或创立一人公司&#xff0c;通过副业产品开发实现个人价值与经济收益的双重提升。本文将围绕一人公司模式下副业产品的设计、开发、运营及变现落地全流程&#xff0c;提供一套实战指南&#xff0c;帮助有志于…

SD模型微调之Textual Inversion和Embedding fine-tuning

​ &#x1f33a;系列文章推荐&#x1f33a; 扩散模型系列文章正在持续的更新&#xff0c;更新节奏如下&#xff0c;先更新SD模型讲解&#xff0c;再更新相关的微调方法文章&#xff0c;敬请期待&#xff01;&#xff01;&#xff01;&#xff08;本文及其之前的文章均已更新&a…

【Vue笔记】基于vue3 + element-plus + el-dialog封装一个自定义的dialog弹出窗口组件

这篇文章,介绍一下如何使用vue3+element-plus中的el-dialog组件,自己封装一个通用的弹出窗口组件。运行效果如下所示: 目录 1.1、父子组件通信 1.2、自定义VDialog组件(【v-model】模式) 1.2.1、编写VDialog组件代码 1.2.2、使用VDialog组件 1.2.3、运行效果 1.3、自…

Spring Cloud Alibaba [Gateway]网关。

1 简介 网关作为流量的入口&#xff0c;常用功能包括路由转发、权限校验、限流控制等。而springcloudgateway 作为SpringCloud 官方推出的第二代网关框架&#xff0c;取代了Zuul网关。 1.1 SpringCloudGateway特点: &#xff08;1&#xff09;基于Spring5&#xff0c;支持响应…

不完全微分PID控制算法

不完全微分PID控制算法是一种改进的PID控制方法&#xff0c;主要针对PID控制中的微分环节对高频噪声敏感的问题。通过对微分项进行优化和改造&#xff0c;减少其对噪声的放大作用&#xff0c;同时保留对系统动态变化的响应能力。 不完全微分PID控制原理 不完全微分的核心思想是…

DataOps for LLM 的数据工程技术架构实践

导读 在 LLM 蓬勃发展的今天&#xff0c;数据工程已成为支持大规模 AI 模型训练的基石。DataOps 作为数据工程的重要方法论&#xff0c;通过优化数据集成、转换和自动化运维&#xff0c;加速数据到模型的闭环流程。本文聚焦新一代数据 & AI 集成工具- Apache SeaTunnel 在…

go-zero(七) RPC服务和ETCD

go-zero 实现 RPC 服务 在实际的开发中&#xff0c;我们是通过RPC来传递数据的&#xff0c;下面我将通过一个简单的示例&#xff0c;说明如何使用go-zero框架和 Protocol Buffers 定义 RPC 服务。 一、生成 RPC项目 在这个教程中&#xff0c;我们根据user.api文件&#xff0…

【c++丨STL】list模拟实现(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C、STL 目录 前言 一、节点、迭代器以及函数声明 二、list功能实现 1. 节点 2. 迭代器 迭代器的默认构造 operator* operator-> 前置和-- 后置和--…

SpringBoot:不支持发行版本17超详细解决办法

一开始linux中就已经下好了JDK21&#xff0c;但是后来创建项目的时候选用了JDK23&#xff0c;导致环境错乱&#xff0c;估计大部分都是因为这个原因&#xff0c;接下来我会一步步带大家解决。 检查系统环境&#xff08;以Ubuntu为例&#xff09; 没有下载JDK的可以在官网下载…

计算机网络中的数据包传输机制详解

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 计算机网络中的数据包传输机制详解 计算机网络中的数据包传输机制详解 计算机网络中的数据包传输机制详解 引言 数据包的基本概念…