uni-app-通过vue-cli命令行快速上手

环境安装

全局安装 vue-cli

npm install -g @vue/cli

创建uni-app

  • 使用正式版(对应HBuilderX最新正式版)

    vue create -p dcloudio/uni-preset-vue my-project
    
  • 使用alpha版(对应HBuilderX最新alpha版)

    vue create -p dcloudio/uni-preset-vue#alpha my-alpha-project
    
  • 使用Vue3/Vite版

    • 创建以 javascript 开发的工程(如命令行创建失败,请直接访问 gitee下载模板)
npx degit dcloudio/uni-preset-vue#vite my-vue3-project
npx degit dcloudio/uni-preset-vue#vite-alpha my-vue3-project
  • 创建以 typescript 开发的工程(如命令行创建失败,请直接访问 gitee下载模板)
npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project

此时,会提示选择项目模板(使用Vue3/Vite版不会提示,目前只支持创建默认模板),初次体验建议选择 hello uni-app 项目模板,如下所示:

注意

  • Vue3/Vite版要求 node 版本 18+、20+
  • 如果使用 HBuilderX(3.6.7以下版本)运行 Vue3/Vite 创建的最新的 cli 工程,需要在 HBuilderX 运行配置最底部设置 node路径 为自己本机高版本 node 路径(注意需要重启 HBuilderX 才可以生效)
    • HBuilderX Mac 版本菜单栏左上角 HBuilderX->偏好设置->运行配置->node路径
    • HBuilderX Windows 版本菜单栏 工具->设置->运行配置->node路径
自定义模板

选择自定义模板时,需要填写 uni-app 模板地址,这个地址其实就是托管在云端的仓库地址。以 GitHub 为例,地址格式为 userName/repositoryName,如 dcloudio/uni-template-picture 就是下载图片模板。

更多支持的下载方式,请参考这个插件的说明:download-git-repo

国内特殊情况

模板项目存放于 Github,由于国内网络环境问题,可能下载失败。针对此问题可以尝试如下措施:

  • 更换网络重试,比如使用 4g 网络
  • 在设备或路由器的网络设置中增加 DNS(如:8.8.8.8)
  • 在设备中增加固定的 hosts(如:140.82.113.4 github.com)
更新依赖到指定版本

可以使用 @dcloudio/uvm管理编译器的版本,此工具仅自动增加或更新 uni-app 编译器主要依赖,对于新增的编译命令(scripts)暂时不会自动处理,需手动参考新工程进行配置。

  • 更新到最新正式版
    npx @dcloudio/uvm@latest
    
  • 更新到最新 Alpha 版
    npx @dcloudio/uvm@latest alpha
    
  • 更新到正式版指定版本
    npx @dcloudio/uvm@latest 3.2.0
    
    npx @dcloudio/uvm@latest 3.2.12.20211029
    
    复制代码
  • 更新到 Alpha 版指定版本
    npx @dcloudio/uvm@latest 3.2.0-alpha
    
    npx @dcloudio/uvm@latest 3.2.14.20211112-alpha
    

运行、发布uni-app

npm run dev:%PLATFORM%
npm run build:%PLATFORM%

%PLATFORM% 可取值如下:

平台
app-plusapp平台生成打包资源(支持npm run build:app-plus,可用于持续集成。不支持run,运行调试仍需在HBuilderX中操作)
h5H5
mp-alipay支付宝小程序
mp-baidu百度小程序
mp-weixin微信小程序
mp-toutiao抖音小程序
mp-lark飞书小程序
mp-qqqq 小程序
mp-360360 小程序
mp-kuaishou快手小程序
mp-jd京东小程序
mp-xhs小红书小程序
quickapp-webview快应用(webview)
quickapp-webview-union快应用联盟
quickapp-webview-huawei快应用华为

可以自定义更多条件编译平台,比如钉钉小程序,参考package.json文档。

运行并发布快应用

快应用有两种开发方式,uni-app均支持:

  • 类小程序webview渲染方式:uni-app支持快应用-webview版,欢迎体验 - DCloud问答
  • 原生渲染方式:欢迎大家参与快应用vue原生渲染模式的适配共研 - DCloud问答
运行并发布快应用(webview)

HBuilderX 2.7.12+ 版支持

运行并发布快应用(webview)-华为

HBuilderX 2.7.10+ 版支持

华为快应用文档-小程序转快应用 文档中心

其他:

  • 目前使用npm run build:app-plus会在/dist/build/app-plus下生成app打包资源。如需制作wgt包,将app-plus中的文件压缩成zip(注意:不要包含app-plus目录),再重命名为${appid}.wgtappidmanifest.json文件中的appid
  • dev 模式编译出的各平台代码存放于根目录下的 /dist/dev/目录,打开各平台开发工具选择对应平台目录即可进行预览(h5 平台不会在此目录,存在于缓存中);
  • build 模式编译出的各平台代码存放于根目录下的 /dist/build/ 目录,发布时选择此目录进行发布;
  • dev 和 build 模式的区别:
    1. dev 模式有 SourceMap 可以方便的进行断点调试;
    2. build 模式会将代码进行压缩,体积更小更适合发布为正式版应用;
    3. 进行 环境判断 时,dev 模式 process.env.NODE_ENV 的值为 development,build 模式 process.env.NODE_ENV 的值为 production。

cli创建项目和HBuilderX可视化界面创建项目的区别

  • cli创建的项目,是传统的node项目结构。工程代码在src目录下,编译器在项目下,编译结果在dist目录下。
  • HBuilderX可视化创建的项目,是一种免node开发概念。工程代码在项目目录下,编译器在HBuilderX目录下而不是项目下,编译结果在项目的unpackage目录下。

有些习惯了cli的开发者,使用HBuilderX可视化模式时不适应。讲解下它们的差别以及为什么HBuilderX提供了多种方式。

cli创建的项目,也可以拖入HBuilderX编辑

首先HBuilderX作为通用编辑器,兼容传统的cli方式开发。不止uni-app的cli,其他框架的cli也可以拖入HBuilderX。

也就是HBuilderX里可以使用可视化界面创建项目,也可以使用cli命令行创建项目,都可以达到和uni-app更好协作的目的。比如pages.json跳转和提示、manifest可视化界面、条件编译、rpx等css单位...众多 for uni-app 的优化都可以使用。

这些是HBuilderX的特点,和项目结构无关。

如想用其他ide开发uni-app,只能使用cli模式

很好理解。因为其他ide没有内置uni-app的编译器,所以其他ide开发uni-app,只能把编译器安装在项目下,也就是cli创建的项目格式。

cli项目可以使用多种ide开发,但ide之间有区别:

  • HBuilderX为uni-app做了大量优化,其他ide搭配uni-app使用也可以用,但没有为uni-app优化过
  • 其他ide没有uni-app的app和uniCloud的运行、调试工具。这些工具在HBuilderX里。如开发app和uniCloud,必须使用HBuilderX。

可视化方式的区别

HBuilderX可视化创建、运行、发布项目,底层调用的也是npm的run、build等命令。只是编译器不在项目下,而是在HBuilderX的目录下。

为什么要提供HBuilderX可视化模式

  • 为了提升易用性,降低门槛

很多开发者对node不熟悉、对命令行有心理抵触。不要想当然认为所有开发者都会node,HBuilder有几百万开发者,其中掌握node的开发者连一半都占不到。

  • npm、github网络经常出问题

使用cli创建项目时,cli需要从npm安装,预置的项目模板选择从github下载,这些经常因为网络问题卡壳。可视化创建项目不存在这个问题。

  • 每个uni-app项目下都有一套编译器太麻烦

一个HBuilderX的开发者有非常多个uni-app项目,如果每个项目下放一套编译器,会有很多不合理: - 创建项目会非常慢 - 非常占用磁盘空间(uni-app的编译器有数万个文件) - 升级麻烦,兼容性问题多。cli项目下的编译器不会跟随HBuilderX升级而升级,只能开发者手敲npm命令升级。当HBuilderX升级后,有的uni-app项目的编译器未升级,有的升级了,报错时开发者很容易懵圈,给DCloud报bug时DCloud也懵圈。让ide版本、编译器版本、uni-app运行时这3者的版本保持一致,会减少非常多的问题。

把编译器内置到HBuilderX中,开发者创建项目时只需关心自己的业务代码,工程结构干净清爽。

各家小程序也都是这么做的,编译器在小程序开发工具里,创建项目时不会在项目下带一套编译器(小程序也是要把wxml等编译为js的)。

  • less、scss、ts等编译器的自动安装
    • 如果使用cli项目,那么less、scss、ts等编译器需要自己手动敲npm命令安装。由于DCloud官方不会和每种预编译器的每个版本都做兼容性测试,如果你使用了较低的预编译器版本,可能会无法正常运行,这需要你自己排查
    • 如果使用HBuilderX可视化创建项目,这些编译器会按需自动安装,并且是DCloud官方测试过版本兼容性的。开发者只需在你的代码中使用这些预编译技术,剩下的HBuilderX会自动搞定。
  • 可视化更高效

HBuilderX提供的免node开发,除了易用,还更高效。

  •  新建项目:Ctrl+N
  • 运行项目:Ctrl+R
  • 发行项目:Ctrl+U

这比启动终端,移动焦点到终端窗口,敲命令快多了。

在uni-app中,终端命令比传统web开发要多、要长,还要敲运行平台参数的,选择你要运行到web还是app或某家小程序。

综上,

如果你习惯node,也能接受和管理好每个项目下一套编译器的方式,清楚上述利弊,那你可以选择cli创建项目。

至于ide,肯定还是HBuilderX搭配uni-app开发更高效。

如果你习惯其他ide,开发uni-app低效也无所谓,那也可以用其他ide。但注意至少运行调试app和uniCloud时,还得把HBuilderX开着,就像开着微信小程序工具调试那样。

在DCloud内部,uni-app和HBuilderX是不同的团队。

  • 对于uni-app来说,它面对所有ide一视同仁。它兼容node生态,支持d.ts语法提示
  • 对于HBuilderX来说,uni-app是一等公民。HBuilderX为uni-app做了很多优化

其他注意事项

 

关于优联前端

        武汉优联前端科技有限公司由一批从事前端10余年的专业人才创办,是一家致力于H5前端技术研究的科技创新型公司,为合作伙伴提供专业高效的前端解决方案,合作伙伴遍布中国及东南亚地区,行业涵盖广告,教育, 医疗,餐饮等。有效的解决了合作伙伴的前端技术难题,节约了成本,实现合作共赢。可进行Web前端,微信小程序、小游戏,2D/3D游戏,动画交互与UI广告设计等各种技术研发。

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

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

相关文章

Linux常用命令;Linux常用软件;Linux权限

一,常用命令 是人向计算机发送指令的语言。 命令的格式: 命令 [选项] [参数] 1、ls 展示当前目录下文件的命令 1、-l 展示详细信息。还有另外一种写法:ll(字母 LL 小写) 2、-S 按照文件大小倒序展示 3、-t…

1952. 三除数

目录 一:题目: 二:代码: 三:结果: 一:题目: 给你一个整数 n 。如果 n 恰好有三个正除数 ,返回 true ;否则,返回 false 。 如果存在整数 k &a…

【软件测试】性能测试-概念篇

目录 🌴什么是性能测试 🌳常见性能测试指标 🚩并发数 🚩吞吐量 🚩吞吐量分类 🏀按照请求分类:TPS和QTS 🏀按照网络数据包划分:KB 🚩响应时间 🚩资源利用率 &am…

SpringBoot启动流程之运行时监听器

SpringBoot启动过程: 上一节我们讨论SpringApplication实例化的过程,也就是上图1-5步骤,本节我们讨论6-9的关键步骤,现在主要讲是run方法里面的过程 /*** 启动方法* param args* return*/public ConfigurableApplicationContext …

基于JAVA+SpringBoot+Vue的景区民宿预约系统

基于JAVASpringBootVue的景区民宿预约系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈…

Mamba所需的causal-conv1d 和mamba-ssm库在哪下载?

背景介绍 参照 Mamba [state-spaces/mamba: Mamba SSM architecture (github.com)] github中提到的环境安装[Installation 一栏] [Option] pip install causal-conv1d>1.4.0: an efficient implementation of a simple causal Conv1d layer used inside the Mamba block.…

浙版传媒思迈特软件大数据分析管理平台建设项目正式启动

近日,思迈特软件与出版发行及电商书城领域的领军企业——浙江出版传媒股份有限公司,正式启动大近日,思迈特软件与出版发行及电商书城领域的领军企业——浙江出版传媒股份有限公司,正式启动大数据分析管理平台建设项目。浙版传媒相…

华为HarmonyOS灵活高效的消息推送服务(Push Kit) - 2 开通推送服务与配置Client ID

在开通推送服务前,请先参考“应用开发准备”完成基本准备工作,再继续进行以下开发活动。 说明 从HarmonyOS NEXT Developer Beta2起,开发者无需配置公钥指纹和Client ID。 操作步骤 登录AppGallery Connect网站,选择“我的项目…

UML图中部署图例题

答案:B 知识点: 组件图 一组构件之间的组织和依赖,专注于系统的静态实现视图 部署图 运行处理结点以及构件的配置,给出体系结构的静态视图 类图 一组对象,接口,协作和它们之间的关系 UML图中涉及到…

ALTIUM DESIGNER PCB设计中关闭和打开捕捉热点(hot spot)功能

ALTIUM DESIGNER PCB设计中关闭和打开捕捉热点(snap to hot spot)功能 在采用ALTIUM DESIGNER 18 进行PCB元器件布局时,我喜欢将元器件放置在栅格(grid)上,这样元器件的位置比较规整。但在设置完栅格后&am…

Java流程控制语句——跳转语句详解:break 与 continue 有什么区别?

🌐在Java编程中,break和continue是两个重要的控制流语句,它们允许开发者根据特定条件改变程序的执行流程。虽然两者都用于中断当前的行为,但它们的作用方式不同。本文将通过生动的例子来详细解释这两个语句,并使用流程…

VMware启动时报错: “另一个程序已锁定文件的一部分,进程无法访问” 分析记录

项目场景: VMware启动时报错: “另一个程序已锁定文件的一部分,进程无法访问” 问题描述 VMware启动时报错: “另一个程序已锁定文件的一部分,进程无法访问” 原因分析: 虚拟机开启后会对部分文件继续加密,关闭时虚拟机会自动对其解密&…

计算机毕业设计之:基于uni-app的校园活动信息共享系统设计与实现(三端开发,安卓前端+网站前端+网站后端)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

Transcipher:从对称加密到同态加密

摘要 本文介绍了Transcipher的概念。在Transcipher的框架下,用户使用高效的对称加密,对自己的数据进行加密,然后将密文和私钥的同态加密密文传输给服务器。服务器进行同态解密,得到用户数据同态加密的密文。Transcipher通过将计算…

分布式锁的几种方案对比?你了解多少种呢?

目录标题 1.关于分布式锁2.分布式锁的实现方案2.1 基于数据库实现2.1.1乐观锁的实现方式2.1.2 悲观锁的实现方式2.1.3 数据库锁的优缺点 2.2 基于Redis实现2.2.1 基于缓存实现分布式锁2.2.2缓存实现分布式锁的优缺点 2.3 基于Zookeeper实现2.3.1 如何实现?2.3.2 zk实…

1.量化第一步,搭建属于自己的金融数据库!

数据是一切量化研究的前提。 做量化没有数据,就相当于做饭时没有食材。 很多时候,我们需要从大量的数据中寻找规律,并从中开发出策略。如果我们每次使用的时候,都从网上去找数据,一方面效率低下,另一方面短…

运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。

一、问题描述 运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。 二、问题分析 在idea中,运行一个springboot项目,在使用大量的库和依赖的时候,会出现报错“命令行过长”&…

你了解system V的ipc底层如何设计的吗?消息队列互相通信的原理是什么呢?是否经常将信号量和信号混淆呢?——问题详解

前言:本节主要讲解消息队列, 信号量的相关知识。 ——博主主要是以能够理解为目的进行讲解, 所以对于接口的使用或者底层原理很少涉及。 主要的讲解思路就是先讨论消息队列的原理, 提一下接口。 然后讲解ipc的设计——这个设计一些…

构建未来企业的理论基石:业务能力建模指南的深度解析与战略实施框架

数字化转型已经成为全球企业的战略焦点,在这个过程中,如何有效地将复杂的业务需求、技术架构和市场变化结合,形成具备长期竞争力的企业能力框架,是企业成败的关键。《业务能力指南》提供了一套经过验证的理论体系,帮助…

【番茄成熟度数据集】12类names

【番茄成熟度数据集】12类 names: [half-ripe, ripe, rotten tomatoes, tomato fully ripe, tomato semi ripe, tomato unripe, tomato_half_ripe, tomato_overripe, tomato_ripe, tomato_rotten, tomato_unripe, unripe] 名称: [半熟的, 成熟的, 腐烂的西红柿, 西红柿完全成熟…