vue3-环境搭建(docker版本)

news2024/9/26 5:22:25

大大小小项目经历无数,之前都是写的vue2的项目,因为项目需要,边学边用vue3,也算能转的开,但心里一直想系统的理顺一下vue3。

看了看极客时间,掘金小课,都没有能达到心里预期的“系统学习”,于是翻了翻vue3的官方文档,刹那间感觉来了,中文文档,条例清晰,还有示例程序,粗粗看了看前几章,文档质量比vue2强太多了,完全是教科书式的文档。跟着文档学,准没错。

环境搭建

由于nodjs的包机制,前端环境永远是无法轻松逾越的大山,时不时的nodjs版本不对,包中某个引用异常,然后各种百度各种尝试。看着前端项目,常常感叹,咋引用那么多包啊。

但我不是一个纯前端,我不会在环境上浪费太多时间,因为我有docker。docker在手,环境搞定。

不会docker没关系,按照下边操作,一样能搞,最重要的是比装nodjs简单。至于开发,还是在你本地开发。因为docker有个数据卷映射功能,能把你开发目录直接映射到docker系统里的目录。

因为我用的是win环境,所以要说的也是win docker安装vue环境。

win docker

百度直接搜索docker,进入官网,直接点击那个window版本的下载。大概564M,下载完后,一路next安装。这要说明一点的是你的系统必须是win10及以上,家庭版本的系统需要自己百度攻略开启wsl2。

docker镜像制作

docker安装完后,也启动了,你先创建一个项目目录,假设叫D:/vuedemo,然后在该目录下新建一个docker镜像制作的文本,名字就叫Dockerfile。内容如下:

FROM node
LABEL maintainer="作者随便 <happy@hanppy>"
RUN npm config set registry https://registry.npmmirror.com/
WORKDIR /app 

很简单只有短短四行。

第一行,node是一个官方的基础镜像,在这个镜像基础上构建自己的镜像。

第二行,作者,可以忽略甚至没有这一行。

第三行,执行npm镜像源设置,要不是因为需要重制镜像源,可以直接用node镜像来开发。

第四行,设置工作目录,因为node基础镜像是一个linux,所以可以设置目录为"/app",没有linux经验的可以把"/app"理解成根目录下的app目录。linux只有且仅有一个根目录"/"。

下一步在Dockerfile同级目录打开一个cmd,然后执行命令:

docker build -t nodejs2:v1 .

然后就能看到镜像文件在不断下载安装。

命令解释一下:

docker就是安装docker后才有的docker命令。

build 是创建一个镜像文件的命令。

-t 指定镜像文件名称,名称包括,名称:版本号,如例子所示:nodejs:v1

最后那个点千万不能丢,表示在当前目录下寻找Dockerfile文件进行镜像文件创建。

docker-compose 创建开发环境容器

有了镜像文件只是第一步,相当于你有了一个系统盘,想要把系统真的能跑起来,你还需要找台机子安装这个系统盘,docker容器创建就相当于安装系统。

我们这里采用最好操作的docker-compose方法来安装容器,首先在D:/vuedemo下创建一个以容器名命名的目录,假设叫 myvue,然后在myvue下创建文件,名为docker-compose.yml。内容如下:

version: '3.8'

networks:nodejsnet:driver: bridge

services:nodejs:image: nodejs:v1#镜像名称,就是制作镜像时候的名字container_name: nodjs #容器名称,可以省略。系统会使用默认名字volumes:- D:/vuedemo/project:/app#这是重点,映射你本地目录到容器系统中的目录 D:/vuedemo/project 为你的项目根目录,/app为容器系统工作目录。中间用“:”表示映射stdin_open: truetty: trueenvironment:- NODE_ENV=developmentports:- 5173:5173 # 前边是本地端口,后边是容器端口,意识是把本地5173映射到容器5173端口networks: - nodejsnetcommand: shrestart: "no" 

在该配置文件同级目录下调起cmd,然后运行命令:

docker-compose up -d

这个命令经常用,意思就是启动安装启动容器,或者更新启动容器。docker-compose在安装完docker后也会有的命令。

容器中创建vue项目

容器有了。下一步就是登陆容器的terminal。直接打开桌面容器。点击容器对应的terminal按钮。如下图:

然后就出来一个熟悉的“cmd”。

vue3 方法初始化项目

在命令行里执行如下创建项目命令

npm init vue@latest

剩下的参考官方文档:cn.vuejs.org/guide/quick…

vite 方法初始化项目

在命令行里执行如下命令:

npm create vite@latest my-vue-app --template vue

参考官方文档:cn.vitejs.dev/guide/#scaf…

说明一下,npm init 等于 npm create命令,之前就很困惑为啥npm一会init一会create,百度了一下,两个命令一样。

两种初始化vue项目用的模块不一样,一个是vue一个是vite,但最后都是生成一个vite项目。通过修改生成项目的配置文件,最后效果一样。

vite配置

由于docker容器所依赖的wsl2技术,有一些先天缺陷,导致容器中无法监听宿主机文件变更,所以需要vite特殊配置一下,以便实现热刷新。相关说明链接:cn.vitejs.dev/config/serv…

在D:/vuedemo/project/ 下找到vue项目目录,找到一个名叫“vite.config.js”的文件,添加配置:

 server:{host:"0.0.0.0",hmr:true,watch: { usePolling: true }} 

具体位置如下图

其中host设置,允许容器外,即宿主机访问该容器的端口。

watch设置,是实现热刷新。

最后在容器cmd里运行 npm run dev 启动vue项目。

然后在浏览器里访问 localhost:5173。

结语

对于开发来说,万事环境难,环境搭完了,后边可以跟着文档系统学习了。

预计还会输出几篇vue3的文章,但肯定不是无脑的搬运文档。初步计划把印象深刻,与vue2差异大的一些内容整理一下进行输出。

最后

整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。

有需要的小伙伴,可以点击文末卡片领取这份文档,无偿分享

部分文档展示:



文章篇幅有限,后面的内容就不一一展示了

有需要的小伙伴,可以点下方卡片免费领取

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费内网穿透软件一步设置实现外网访问

在工作和生活中&#xff0c;有很多类似内网搭建服务器和外网连接内网的需求&#xff0c; 例如在任何地方都能访问自己家里的主机电脑笔记本上的应用&#xff0c;让出差外网和任何地方都能访问到公司内部局域网的服务器……这些需求我们可以统一用一个方案解决&#xff0c;那就是…

网络编程UDP+TCP

日升时奋斗&#xff0c;日落时自省 目录 1、网络编程基本概念 2、UDP数据报套接字编程 2.1、UDP相关API 2.1.1、DatagramSocket API 2.1.2、DatagramPacket API 2.2、UDP版本服务器 2.3、UDP版本客户端 2.4、UDP连接操作 2.5、翻译业务 2.6、总结 3、TCP流套接字编程 …

【项目实战】一文入门项目中Lombok的常用注解

一、Lombok介绍 1.1 Lombok是什么&#xff1f; 一个Java库&#xff0c;用于简化Java代码。 Lombok是一个非常神奇的 java 类库&#xff0c;会利用注解自动生成 java Bean 中烦人的 Getter、Setting&#xff0c;还能自动生成 logger、ToString、HashCode、Builder 等 java特色…

【GD32F427开发板试用】开发一款网络音乐播放器

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;守勤 资源介绍 非常荣幸能够参与到这次GD32F427开发板试用的活动中来&#xff0c;开发板的设计非常简洁&#xff0c;板载了一颗GD32F103C8T6和…

Python中的递归及案例演示

目录 一.什么是递归 二.案例 递归找文件 步骤 os模块中的三个方法 演示 最终代码 三.总结 一.什么是递归 递归在编程中是一种非常重要的算法 递归:即方法(函数)自己调用自己的一种特殊编程写法 如&#xff1a; 函数调用自己&#xff0c;即称之为递归调用。 二.案例 递…

C++ 引用! 他是坤坤也是鸡哥

&#x1f451;专栏内容&#xff1a;C学习笔记⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;日拱一卒&#xff0c;功不唐捐 目录一、前言二、引用1、引用的概念2、引用的声明3、引用的特性Ⅰ、 引用在定义时必须初始化Ⅱ、 一个变量可以有多个引用Ⅲ、引…

深度学习PyTorch 之 DNN-多分类

前面讲了深度学习&PyTorch 之 DNN-二分类&#xff0c;本节讲一下DNN多分类相关的内容&#xff0c;这里分三步进行演示 结构化数据 我们还是以iris数据集为例&#xff0c;因为这个与前面的流程完全一样&#xff0c;只有在模型定义时有些区别 损失函数不一样 二分类时用的损…

Pollard Rho算法

生日悖论 假设一年有nnn天&#xff0c;房间中有kkk人&#xff0c;每个人的生日在这nnn天中&#xff0c;服从均匀分布&#xff0c;两个人的生日相互独立 问至少要有多少人&#xff0c;才能使其中两个人生日相同的概率达到ppp 解&#xff1a;考虑k≤nk\le nk≤n 设kkk个人生日互…

Spring框架介绍及使用

文章目录1.概述1.1 Spring是什么1.2 Spring 的优势1.3 spring 的体系结构2. IoC 的概念和作用2.1 什么是程序的耦合2.2 IoC容器3. AOP的概念和作用超链接&#xff1a; Spring重点内容学习资料1.概述 1.1 Spring是什么 Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源…

使用docker-compose搭建Prometheus+Grafana监控系统

一、角色分配 Prometheus 采集数据Grafana 用于图表展示redis_exporter 用于收集redis的metricsnode-exporter 用于收集操作系统和硬件信息的metricscadvisor 用于收集docker的相关metrics 二、安装Docker 可以参考&#xff1a;https://ximeneschen.blog.csdn.net/article/d…

JVM调优实战:to-space exhausted Evacuation Failure

一次线上dubbo问题的定位&#xff0c;进行JVM调优实战。问题线上dubbo接口provider抛出异常&#xff1a;org.apache.dubbo.rpc.RpcException: Failfast invoke providers ... RandomLoadBalance select from all providers ... use dubbo version 2.7.16, but no luck to perfo…

vulnhub DC系列 DC-8

总结&#xff1a;exim4提权 目录 下载地址 漏洞分析 信息收集 网站爆破 后台webshell 提权 下载地址 DC-8.zip (Size: 379 MB)Download: http://www.five86.com/downloads/DC-8.zipDownload (Mirror): https://download.vulnhub.com/dc/DC-8.zip使用方法:解压后&#xff…

Cosmos 基础(二)-- Ignite CLI

官网 DOC GitHub 你的项目值得拥有自己的区块链。 Ignite使开发、增长和启动区块链项目比以往任何时候都更快。 Ignite CLI是一个一体化平台&#xff0c;可以在主权和安全的区块链上构建、启动和维护任何加密应用程序 Install Ignite 一、安装 你可以在基于web的Gitpod…

23种设计模式(七)——桥接模式【单一职责】

文章目录 意图什么时候使用桥接真实世界类比桥接模式的实现桥接模式的优缺点亦称:Bridge 意图 桥接模式是将抽象部分与实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。 什么时候使用桥接 1、如果一个…

详解MySQL数据库索引实现机制 - B树和B+树

详解MySQL数据库索引实现机制 - B树和B树1.索引的出现2.hash算法的缺点3.二叉排序树BST4.平衡二叉树AVL5.红黑树6.B树诞生了7.B树1.索引的出现 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 索引的作用就相当于书的目录。…

(Netty)Handler Pipeline

Handler & Pipeline ChannelHandler 用来处理 Channel 上的各种事件&#xff0c;分为入站、出站两种。所有 ChannelHandler 被连成一串&#xff0c;就是 Pipeline 入站处理器通常是 ChannelInboundHandlerAdapter 的子类&#xff0c;主要用来读取客户端数据&#xff0c;写…

【嵌入式处理器】CPU、MPU、MCU、DSP、SoC、SiP的联系与区别

1、CPU(Central Processing Unit) CPU(Central Processing Unit)&#xff0c;是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。众所周知的三级流水线&#xff1a;取址、译码、执行的对象就是CPU&#xff0c;差…

重学Android之View——TabLayoutMediator解析

重学Android之View——TabLayoutMediator解析 1.前言 在使用TabLayoutViewPager2Fragment的时候&#xff0c;查询别人的使用例子&#xff0c;看到了 TabLayoutMediator这个类&#xff0c;撰写此文&#xff0c;仅当学习思考&#xff0c;本文是在引用material:1.7.0的版本基础…

记2022年秋招经历

自我介绍求职体验求职心得 一、自我介绍 学历普通本科&#xff0c;专业是网络工程&#xff0c;在校期间学习主要的是计算机体系方面的知识&#xff0c;根据课程&#xff0c;自学过前端、后端等内容。包括前端三板斧(htmlcssjs)、常用的前端框架(bootstarp/Vue等&#xff09;&am…

Android项目接入React Native方案

本篇文章主要介绍在现有的Android项目中接入React Native的接入过程&#xff0c;分析接入过程中的一些问题和解决方案&#xff0c;接入RN的平台为Android&#xff0c;开发环境为Mac&#xff0c;开发工具为Android Studio。 一、环境配置 1、Android配置 因为是现有的Android项…