位置: IT常识 - 正文

vite搭建vue2项目(vite2.0 vue)

编辑:rootadmin
vite搭建vue2项目 问题提出

推荐整理分享vite搭建vue2项目(vite2.0 vue),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:搭建vue项目流程,vue项目如何搭建,vite2.0 vue,vite vue2,vue2.0搭建,vite vue2,vite2.0 vue,vite搭建vue3,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在做一个练习的小项目,由于要配合组成员的其它成员来搭建项目,大多掌握的技术栈都在vue2,用惯了vite来搭建(vite真香~),就想着来搭建一个vue2的项目。原本以为查下百度很快可以搭好,没想到折腾了一早上。。。。

⭐️文章结尾会给出我的package.json文件

搭建过程1、初始化项目

vite提供了对应的npm命令可以创建各种框架的项目,但是vite在创建vue项目时,默认直接创建vue3,因此这里我们使用原生项目进行创建

1.1 创建项目

注意:这里vite的版本采用2.8.0的,最新的版本创建后续会出现问题

npm init vite@2.8.0

后续,安装如图

创建好项目后

// 1.进入项目cd vite-vue2// 2.安装依赖npm install// 3.启动项目npm run dev

效果图如下:

1.2 安装vite对vue2支持的插件在vite-vue2安装:vite-plugin-vue2// 注意:vite-plugin-vue2的版本为1.9.3npm install vite-plugin-vue2@1.9.3 -D在根目录创建vite.config.js文件,来注册插件import { defineConfig } from 'vite' // 动态配置函数import { createVuePlugin } from 'vite-plugin-vue2'import { resolve } from 'path'export default () =>defineConfig({plugins: [createVuePlugin()],server: {open: true, //自动打开浏览器port: 1567 //端口号},resolve: { // 别名alias: [{find: '@',replacement: '/src'}]}})1.3 安装vue依赖npm命令安装

写本文时,通过npm install vue安装会直接安装3.0版本的因此要指定好vue版本

npm install vue@2.x vue-template-compiler@2.x -S1.4 修改项目文件结构1.4.1 创建src目录

在项目根目录下创建src目录,然后把main.js移到src目录里

import Vue from 'vue'import App from './App.vue'new Vue({render: h => h(App)}).$mount('#app')1.4.2 修改index.html

修改项目启动的入口文件

// index.html <script type="module" src="/src/main.js"></script>1.4.3 创建App.vue文件

代码如下:

<template> <div>Hello Vite Vue2</div></template>1.5 运行一下项目

再次运行下项目检验一下之前配置有无问题

npm run dev

2、vue-router2.1 安装npm install vue-router@3.5.2 -S2.2 新建router目录2.2.1 创建路由表

在src目录下创建router目录,并在router目录下创建index.js文件和module目录,在module目录下创建home.js和index.js。这里采用分模块来存放路由表

// /src/router/module/home.jsexport const home = [{path: '/home',meta: { title: '首页' },component: () => import('@/views/home/Index.vue')}]// /src/router/module/index.jsimport { home } from './home'export const module = [...home]// /src/router下index.jsimport { module } from './module/index'import VueRouter from 'vue-router'import Vue from 'vue'// 使用VueRouterVue.use(VueRouter)const routes = [...module]const router = new VueRouter({mode: 'history',base: '/',routes})export default router2.2.2 创建路由指向的页面组件vite搭建vue2项目(vite2.0 vue)

在 src 目录下创建 views 目录,用来存放页面组件。

在 src/views/home 目录下创建1个页面:Index.vue

<template> <div> Home </div></template>2.3 全局注册2.3.1 在main.js里注册import Vue from 'vue'import App from './App.vue'import router from './router/index.js'new Vue({ router, render: h => h(App)}).$mount('#app')2.3.2 创建路由跳转标签

修改App.vue文件

<template> <div id="app" class="app"> <router-view></router-view> </div></template>3、vuex

vuex作为大型单页面的状态管理器,使用起来十分方便,在有mapState、mapMutation等语法糖的引入变得更加的简单,但当项目比较小的时候可以不引入,可能会变得臃肿起来,这里为了学习就引入进来了~

3.1 安装npm install vuex@3.6.2 -S3.2 新建vuex目录

在src目录下创建store目录,并在store目录下创建index.js

// index.jsimport Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex) // 使用Vuexexport default new Vuex.Store({state: {count: 0},mutations: {increment(state) {state.count++}},actions: {},modules: {}})3.3 全局注册import Vue from 'vue'import App from './App.vue'import router from './router/index.js'import store from './store'new Vue({ router, store, render: h => h(App)}).$mount('#app')4、组件库

这里组件库我采用了阿里推荐的ant-design-vue,版本采用1.x才兼容vue2

4.1 安装npm install ant-design-vue@1.7.8 -S4.2 按需引入

ps:在官网看半天还以为要引入babel-plugin-import 来按需引入,搞半天最后发现可以直接引入。。。。

在src建立目录plugin/antd目录,在下面创建index.js文件,代码如下:

import Vue from 'vue'import { Button, message } from 'ant-design-vue' // 按需引入import 'ant-design-vue/dist/antd.css' // or 'ant-design-vue/dist/antd.less'// 挂载全局MessageVue.prototype.$message = messageVue.use(Button)4.3 在main.js全局注册// main.js// 引入antdimport './plugin/antd'new Vue({router,store,render: h => h(App)}).$mount('#app')4.4 在页面中使用<template> <div> <a-button type="dashed" @click="onClick"> Dashed </a-button> </div></template><script>export default { mounted() { }, methods: { onClick() { this.$message.info('This is a normal message'); } }}</script>

5、axios

本文会对axios做一个简单的封装。

5.1 安装npm install axios -S5.2 封装axios

在src创建http目录,在其下面创建request.js和home.js

// request.jsimport axios from 'axios'import { message } from 'ant-design-vue'// 创建axios实例// 创建请求时可以用的配置选项// 配后端数据的接收方式application/json;charset=UTF-8或者application/x-www-form-urlencoded;charset=UTF-8const contentType = 'application/json;charset=UTF-8'const instance = axios.create({/** * 是否携带cookie,注意若携带cookie后端必须配置 * 1.Access-Control-Allow-Origin为单一域名(具体到IP + port,用localhost貌似不行) * 2.需要带上响应头Access-Control-Allow-Credentials */// withCredentials: true,timeout: 1000,baseURL: 'http://localhost:8000/api/v1',headers: {'Content-Type': contentType}})// axios的全局配置instance.defaults.headers.post = {'Content-Type': 'application/x-www-form-urlencoded'}instance.defaults.headers.common = {'Auth-Type': 'company-web','X-Requested-With': 'XMLHttpRequest',token: 'sdfjlsdfjlsdjflsjflsfjlskd'}// 添加请求拦截器(post只能接受字符串类型数据)instance.interceptors.request.use(config => {const token = window.sessionStorage.getItem('token')if (token) {config.headers.Authorization = token}return config},error => {return Promise.reject(error)})const errorHandle = (status, other) => {switch (status) {case 400:message.error('信息校验失败')breakcase 401:// @ts-nocheckmessage.error('认证失败')breakcase 403:message.error('token校验失败')breakcase 404:message.error('请求的资源不存在')breakdefault:message.error(other)break}}// 添加响应拦截器instance.interceptors.response.use(// 响应包含以下信息data,status,statusText,headers,configres => {if (res.data && res.data.code !== 0 && !(res.data instanceof Blob)) {message.error(res.data.msg || '服务器出错!')}// 请求通用处理return res.data},err => {// message.error(err)const { response } = errif (response) {errorHandle(response.status, response.data)return Promise.reject(response)}message.error('请求失败')return true})export default instanceimport request from './request'export default { getList(model) { return request({ url: '/theme/list', method: 'post', data: model }) },}5.3 在页面中使用<script>import $http from '@/http/home.js'export default { mounted() { }, methods: { async onSubmit(){ const res = await $http.getList({}); console.log(res) } }}</script>总结

以上就是我用vite搭建vue2项目的一个全过程啦。希望对大家搭建项目有所帮助,如果有帮助的话,欢迎给文章点个赞👍也欢迎留言提问❓

⭐️最后的最后,附上我的package.json文件(这点真的很重要😰)

{ "name": "vite-vue2", "private": true, "version": "0.0.0", "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview" }, "devDependencies": { "less": "^3.9.0", "less-loader": "^4.1.0", "vite": "^2.8.0", "vite-plugin-vue2": "^1.9.3" }, "dependencies": { "ant-design-vue": "^1.7.8", "axios": "^0.27.2", "qs": "^6.11.0", "vue": "^2.7.8", "vue-router": "^3.5.2", "vue-template-compiler": "^2.7.8", "vuex": "^3.6.2" }}9.16更新

感谢评论区网页的提问意见。解决了两个问题

安装vue-router时应该是npm install vue-router@3.5.2 -S 使用npm run build之后用npm run preview会出现require is not defined的问题。这个可以参考这篇文章vue cli改造vite最佳实践。注意:经过实践,本项目出现的根源在于组件库ant-design-vue的问题,这里需要在vite.config.js加入如下的配置:resolve: {alias: [// 忽略其他代码{ find: /ant-design-vue$/, replacement: 'ant-design-vue/dist/antd.min' } // 解决关键点。]},参考资料

Vite官方文档

vite-plugin-vue2插件

Vue.js

Vue-router

Vuex

ant-design-vue

axios

本文链接地址:https://www.jiuchutong.com/zhishi/300700.html 转载请保留说明!

上一篇:Vue基础知识总结 11:前端路由vue-router(vue要掌握哪些知识?)

下一篇:利用vue实现登陆界面及其跳转(vue 登陆)

  • 苹果手机怎么设置百分比电量(苹果手机怎么设置铃声来电铃声)

    苹果手机怎么设置百分比电量(苹果手机怎么设置铃声来电铃声)

  • 苹果手机怎么弄卡通人头(苹果手机怎么弄空调遥控?)

    苹果手机怎么弄卡通人头(苹果手机怎么弄空调遥控?)

  • 荣耀8手机和华为荣耀8青春版对比(华为荣耀8和华为荣耀8x区别)

    荣耀8手机和华为荣耀8青春版对比(华为荣耀8和华为荣耀8x区别)

  • 华为荣耀v20对比iqoo(荣耀v20和华为)

    华为荣耀v20对比iqoo(荣耀v20和华为)

  • 路由器ddns有什么用(无线路由器ddns有什么用)

    路由器ddns有什么用(无线路由器ddns有什么用)

  • 聊天置顶怎么设置(聊天中置顶在哪里弄)

    聊天置顶怎么设置(聊天中置顶在哪里弄)

  • 拼多多微信支付不了是怎么回事(拼多多微信支付为什么直接扣银行卡的钱)

    拼多多微信支付不了是怎么回事(拼多多微信支付为什么直接扣银行卡的钱)

  • 删了对方对方的备注会变吗(删除了对方)

    删了对方对方的备注会变吗(删除了对方)

  • 华为mate30辅助圆点怎么设置(华为mate30辅助圆点怎么取消)

    华为mate30辅助圆点怎么设置(华为mate30辅助圆点怎么取消)

  • 华硕一键还原按哪个键(华硕一键还原出厂设置)

    华硕一键还原按哪个键(华硕一键还原出厂设置)

  • 显示未知号码怎么解决(显示未知号码怎么没有拦截)

    显示未知号码怎么解决(显示未知号码怎么没有拦截)

  • 手机怎么下歌到内存卡(手机怎么下歌到∪盘)

    手机怎么下歌到内存卡(手机怎么下歌到∪盘)

  • 华为p30耳机插上没反应(华为p30耳机插上一个响一个不响)

    华为p30耳机插上没反应(华为p30耳机插上一个响一个不响)

  • 快手已戳对方知道吗(快手已戳对方知道了吗)

    快手已戳对方知道吗(快手已戳对方知道了吗)

  • 苹果xr支持多少w充电(苹果XR支持多少w充电器)

    苹果xr支持多少w充电(苹果XR支持多少w充电器)

  • 苹果xr支持扩容吗(苹果xr扩容稳定吗)

    苹果xr支持扩容吗(苹果xr扩容稳定吗)

  • 手机nfc功能怎么打开(手机nfc功能怎么扫描)

    手机nfc功能怎么打开(手机nfc功能怎么扫描)

  • 快手辱骂他人怎么处理(快手辱骂他人怎么写)

    快手辱骂他人怎么处理(快手辱骂他人怎么写)

  • ps邮票的齿轮怎么画(ps制作邮票齿轮边框简单)

    ps邮票的齿轮怎么画(ps制作邮票齿轮边框简单)

  • 抖音解除拉黑对方知道吗(抖音解除拉黑对方后会推送吗)

    抖音解除拉黑对方知道吗(抖音解除拉黑对方后会推送吗)

  • 小米8怎么隐藏相册视频(小米8怎么隐藏应用桌面上的软件)

    小米8怎么隐藏相册视频(小米8怎么隐藏应用桌面上的软件)

  • 无线网电视没信号怎么办(无线网电视没信号是什么原因)

    无线网电视没信号怎么办(无线网电视没信号是什么原因)

  • 荣耀20pro防水吗(华为荣耀20pro防水吗手机防水吗)

    荣耀20pro防水吗(华为荣耀20pro防水吗手机防水吗)

  • 如何制作ps视频(怎么制作ps视频)

    如何制作ps视频(怎么制作ps视频)

  • 按哪个键把文字往左移(按哪个键把文字往左移视频教程)

    按哪个键把文字往左移(按哪个键把文字往左移视频教程)

  • 按住键盘的键无法连续输入(按键盘不起作用怎么办)

    按住键盘的键无法连续输入(按键盘不起作用怎么办)

  • 计算机存储信息的基本单位是什么(计算机存储信息的基本单位是( )A字长B速度C内存D字节)

    计算机存储信息的基本单位是什么(计算机存储信息的基本单位是( )A字长B速度C内存D字节)

  • 微信小程序--》你真的了解小程序组件的使用吗?(微信小程序开发平台)

    微信小程序--》你真的了解小程序组件的使用吗?(微信小程序开发平台)

  • python中input输入为数字(Python中input输入多行文本)

    python中input输入为数字(Python中input输入多行文本)

  • 劳务派遣公司如何收费
  • 允许税前扣除的项目
  • 税收 特征
  • 用现金支付的没有发票怎么办
  • 研发人员差旅费可以资本化吗
  • 现金流量表财务费用怎么填
  • 安置残疾人税收优惠
  • 一般纳税人劳务税率是多少2023
  • 股票发行费用属于资本成本中的筹资费用
  • 现金折扣净额法税
  • 合同履约成本合同结算如何处理抵消
  • 一次还本付息债券到期收益率
  • 简易计税项目是所有发票都是普票吗
  • 餐饮增值税
  • 增值税一般纳税企业支付现金方式取得
  • 预提工程成本的会计分录
  • 公司成立之后有人投资怎么做分录?
  • 股利分配是在当期损益吗
  • 红冲的普通发票要给对方吗
  • 苹果电脑安装了windows能取消吗
  • 收到违反合同的违约金
  • 经营性支出包括哪些
  • 以前年度损益调整怎么做账
  • 行政单位房租收入上交分录
  • 不动产投资包括哪些
  • 上海个人所得税计算器
  • pc端微信怎么更新
  • 拍卖公司收入计入什么分录
  • 股东怎么签合同
  • 融资性售后回租的账务处理
  • php静态页面实现搜索功能
  • 坏账准备会计科目使用说明
  • python自动化selenium
  • GCC strict aliasing – 嫉妒就是承认自己不如别人
  • 预支工资的借条图片
  • 航天税盘服务费全额抵扣报税流程
  • 运输发票开具条件
  • 外包食堂可以开专票吗
  • 劳务派遣小规模开票几个点
  • c语言fread函数的用法示例
  • 公司贷款买车有什么风险
  • 识别假人民币的简便方法
  • 批量替换多个word文档的同一内容
  • 赠品没有收到
  • 支付国外佣金的税率多少
  • 增值税为什么不在利润表里体现
  • 会计中级工作年限截止日期
  • 跨年暂估成本如何冲销
  • 福利费入账需要发票吗
  • 个税起征点调整至10000
  • 外购商品用于赠送进项税可以抵扣吗
  • 增值税申报表和企业所得税申报表的关系
  • 小规模如何申报1个点
  • 纳税人购进国内商品
  • 应付职工薪酬的会计科目
  • 发票冲红给对方单位说明怎么写
  • 会计借方和贷方有哪些科目
  • linux下mysql开启远程访问权限 防火墙开放3306端口
  • xp系统盘空间不足怎么办
  • winde.exe - winde进程是什么意思
  • linux jre
  • 虚拟机安装centos7.9
  • schedulerv2.exe - schedulerv2是什么进程 有什么用
  • python如何配置
  • 老生常谈的错别字
  • android获取位置信息
  • firefox background-image垂直平铺问题的解决方法
  • unity火球特效
  • 防止arp攻击的措施
  • 如何用dos修复引导
  • shell 命令执行顺序
  • nodejs图片上传
  • javascript基础笔记
  • Python性能优化指南
  • 深入理解新发展理念心得体会3篇
  • jquery代码实例
  • jQuery插件扩展extend的简单实现原理
  • 百旺金赋天津客服电话
  • 当前土地增值税优惠政策
  • 党建税收宣传
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设