在uni-app开发中,我们通常有两种创建项目的方式:通过HBuilderX可视化界面创建,或者通过命令行工具创建。对于有一定开发经验的程序员来说,命令行方式往往更受青睐。我在多个uni-app项目实践中发现,命令行创建方式具有几个显著优势:
首先,命令行方式更加灵活可控。我们可以精确指定项目模板、配置参数,并且能够轻松集成到自动化构建流程中。其次,这种方式对团队协作更友好,所有配置都以代码形式存在,避免了因IDE设置不同导致的环境差异问题。最重要的是,命令行创建的项目结构更加清晰,便于后续的定制化开发和维护。
命令行创建uni-app项目首先需要确保Node.js环境已经正确安装。建议使用LTS版本(目前推荐16.x或18.x),可以通过以下命令检查安装情况:
bash复制node -v
npm -v
如果尚未安装,可以从Node.js官网下载对应操作系统的安装包。安装完成后,建议配置npm的国内镜像源以加速后续的包下载:
bash复制npm config set registry https://registry.npmmirror.com
uni-app官方推荐使用@vue/cli作为脚手架工具。全局安装最新版本的Vue CLI:
bash复制npm install -g @vue/cli
安装完成后,可以通过以下命令验证安装是否成功:
bash复制vue --version
注意:如果系统中已经安装了旧版本的Vue CLI,建议先卸载旧版本再安装新版本,以避免潜在的兼容性问题。
在准备好基础环境后,我们可以开始创建uni-app项目。首先选择一个合适的目录,然后执行以下命令:
bash复制vue create -p dcloudio/uni-preset-vue my-uni-app
这个命令会使用uni-app官方提供的预设模板来初始化项目。执行后会进入交互式配置界面,我们需要做出一些关键选择。
在交互式界面中,我们会看到几个重要选项:
模板选择:推荐选择"默认模板"或"自定义模板"。对于初学者,"默认模板"已经包含了uni-app开发所需的基本配置。
CSS预处理器:根据团队习惯选择Less或Sass。我个人更推荐Sass,因为它的社区生态更活跃。
ESLint配置:建议开启并选择"标准配置",这有助于保持代码风格一致。
单元测试:对于中小型项目可以暂时不选,大型项目可以考虑添加。
配置完成后,脚手架会自动下载模板并安装依赖。这个过程可能会花费几分钟时间,取决于网络速度。
成功创建项目后,我们会看到以下核心目录结构:
code复制my-uni-app/
├── public/ # 静态资源
├── src/ # 主要开发目录
│ ├── pages/ # 页面目录
│ ├── static/ # 静态资源
│ ├── App.vue # 应用入口组件
│ └── main.js # 应用入口JS
├── package.json # 项目配置
└── vue.config.js # Vue CLI配置
package.json:定义了项目依赖和脚本命令。特别需要注意的是dev:%PLATFORM%和build:%PLATFORM%系列命令,它们用于启动不同平台的开发或构建。
vue.config.js:这是Vue CLI的核心配置文件。uni-app已经为我们预设了必要的配置,包括多平台支持、路径别名等。我们可以在需要时修改这个文件来定制构建行为。
manifest.json:位于src目录下,这个文件定义了应用的全局配置,包括应用名称、图标、启动页面等。这个文件在项目创建后需要手动配置。
要启动开发环境,我们可以运行以下命令:
bash复制npm run dev:%PLATFORM%
其中%PLATFORM%可以是h5(网页)、mp-weixin(微信小程序)、mp-alipay(支付宝小程序)等。例如,要开发微信小程序:
bash复制npm run dev:mp-weixin
启动后,项目会自动编译并在控制台输出访问地址。对于小程序平台,编译结果会生成在dist目录下,可以用对应平台的开发者工具导入查看。
除了开发命令外,还有一些其他常用命令:
npm run build:%PLATFORM%:构建生产环境版本npm run lint:运行代码检查npm run serve:启动H5开发服务器(仅H5平台)在uni-app中添加新页面非常简单:
src/pages目录下创建新的文件夹,例如useruser.vue文件作为页面组件pages.json中注册新页面:json复制{
"pages": [
...其他页面,
{
"path": "pages/user/user",
"style": {
"navigationBarTitleText": "用户中心"
}
}
]
}
uni-app的一个强大特性是它的跨平台能力。我们可以通过条件编译来实现平台特定的代码:
javascript复制// #ifdef H5
console.log('这段代码只在H5平台执行');
// #endif
// #ifdef MP-WEIXIN
console.log('这段代码只在微信小程序平台执行');
// #endif
如果在项目创建或依赖安装过程中遇到问题,可以尝试以下步骤:
npm cache clean --forcenpm install在进行小程序真机调试时,可能会遇到以下问题:
随着项目规模增长,可以考虑以下优化措施:
uni-app支持Vue的单文件组件开发方式。创建自定义组件时,建议:
src/components目录下组织组件my-button、user-avatar等对于复杂应用,建议使用Vuex进行状态管理。uni-app内置了Vuex支持,可以通过以下步骤添加:
npm install vuex --savesrc/store目录并添加store模块uni-app支持原生插件和混合开发。如果需要使用原生功能:
准备发布应用时,需要构建生产环境版本:
bash复制npm run build:%PLATFORM%
构建完成后,产物会生成在dist目录下。不同平台的发布流程略有不同:
对于团队项目,建议配置CI/CD流程。基本步骤包括:
可以使用GitHub Actions、Jenkins等工具实现自动化流程。
定期更新项目依赖很重要,但需要注意:
npm outdated检查过期的依赖升级uni-app版本时,建议:
在实际项目中,我通常会创建一个升级检查清单,列出所有需要验证的关键功能点,确保升级不会影响现有功能。