作为一名长期奋战在一线的全栈开发者,我见证了小程序生态从微信单平台发展到如今多端兼容的演进历程。在这个过程中,uni-app凭借"一次开发,多端发布"的特性逐渐成为跨平台开发的首选方案。而命令行创建项目的方式,则是老手们提升开发效率的必备技能。
传统IDE可视化创建项目的方式虽然友好,但在实际团队协作中会遇到几个痛点:项目结构标准化程度低、依赖版本难以统一、初始化配置无法复用。通过命令行工具,我们可以用一行代码解决上述所有问题,还能实现CI/CD流水线的无缝对接。
首先确认本机Node环境是否符合要求(建议LTS版本):
bash复制node -v
# 应输出v16.x或v18.x
npm -v
# 应输出8.x或9.x
如果版本不符,推荐使用nvm进行版本管理:
bash复制nvm install 18.16.0
nvm use 18.16.0
注意:Windows用户建议使用nvm-windows,Mac/Linux用户使用原生nvm。遇到权限问题可尝试在命令前加
sudo
全局安装@vue/cli和@dcloudio/uni-cli:
bash复制npm install -g @vue/cli @dcloudio/uni-cli
安装完成后验证:
bash复制vue --version
# 应显示4.x以上
uni -v
# 应显示3.0+
常见问题处理:
EACCES权限错误,可改用:bash复制npm install -g --unsafe-perm @vue/cli
bash复制npm config set registry https://registry.npmmirror.com
在目标目录执行创建命令:
bash复制uni create -t uni-app my-project
这个命令会触发以下动作:
创建完成后目录结构如下:
code复制my-project/
├── pages/ # 页面目录
├── static/ # 静态资源
├── App.vue # 根组件
├── main.js # 入口文件
├── manifest.json # 应用配置
└── pages.json # 页面路由
uni-app提供多种模板类型,通过-t参数指定:
uni-app:默认模板(推荐新手)uni-ui:包含uni-ui组件库native:包含原生插件支持custom:自定义模板实战建议:
uni-appuni-uinativecustom配置私有模板完整创建命令示例:
bash复制uni create -t uni-app --package-manager pnpm --no-git --description "电商项目" my-mall
关键参数说明:
--package-manager:指定pnpm或yarn(默认npm)--no-git:跳过git初始化--description:项目描述(会写入package.json)--template-source:指定自定义模板源推荐使用pnpm提升安装速度:
bash复制corepack enable
pnpm install
常用开发依赖推荐:
bash复制pnpm add -D @types/wechat-miniprogram unplugin-auto-import
经验:通过
npm outdated定期检查依赖更新,但大版本升级需谨慎
建议调整为业务导向结构:
code复制src/
├── api/ # 接口服务
├── assets/ # 静态资源
├── components/ # 公共组件
├── composables/ # 组合式函数
├── pages/ # 页面组件
├── store/ # 状态管理
└── utils/ # 工具函数
调整方法:
pages.json中的路径指向vite.config.js中的alias配置manifest.json中的资源路径推荐配置组合:
bash复制pnpm add -D eslint @antfu/eslint-config
.eslintrc:json复制{
"extends": "@antfu",
"rules": {
"vue/multi-word-component-names": "off"
}
}
bash复制pnpm add -D prettier eslint-config-prettier
常用dev命令:
bash复制uni -p h5 # H5开发模式
uni -p mp-weixin # 微信小程序
uni -p app # App真机调试
调试技巧:
--host 0.0.0.0实现局域网访问构建命令示例:
bash复制uni build --platform mp-weixin --mode production
输出目录说明:
dist/dev/:开发环境构建dist/build/:生产环境构建dist/.sourcemap/:sourcemap文件(需自行配置)GitHub Actions示例(.github/workflows/build.yml):
yaml复制name: Build
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- run: npm install -g pnpm
- run: pnpm install
- run: pnpm run build:mp-weixin
- uses: actions/upload-artifact@v3
with:
name: build
path: dist/build/mp-weixin
现象:
code复制Error: Failed to download template
解决方案:
bash复制uni create --template-source=https://mirror.example.com my-project
现象:
code复制npm ERR! Could not resolve dependency
处理步骤:
npm install --legacy-peer-depsbash复制pnpm install --strict-peer-dependencies=false
常见错误:
code复制[ WXML 文件编译错误] ./pages/index/index.wxml
排查方法:
bash复制uni -p mp-weixin --clean
创建自定义模板仓库:
bash复制uni create -t custom my-template
bash复制uni create --template-source=git@example.com:my-template.git my-project
配置方案示例:
code复制.env.development
.env.production
js复制export default defineConfig({
define: {
'process.env': loadEnv(mode, process.cwd())
}
})
js复制const baseURL = process.env.VITE_API_URL
关键优化点:
json复制// pages.json
{
"subPackages": [{
"root": "subpackage",
"pages": [...]
}]
}
bash复制pnpm add -D vite-plugin-imagemin
js复制// vite.config.js
import Components from 'unplugin-vue-components/vite'
import { UniUIResolver } from 'unplugin-vue-components/resolvers'
export default {
plugins: [
Components({
resolvers: [UniUIResolver()]
})
]
}
经过多个项目的实战验证,命令行创建uni-app项目的方式确实能显著提升开发效率。特别是在需要频繁创建新项目的场景下,通过定制化模板和自动化脚本,可以将项目初始化时间从小时级缩短到分钟级。对于团队协作而言,这种标准化的工作流更能保证项目结构的一致性,减少因环境差异导致的问题。