quickstart-cli.md 7.4 KB
Newer Older
Q
qiang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14

除了HBuilderX可视化界面,也可以使用 `cli` 脚手架,可以通过 `vue-cli` 创建 `uni-app` 项目。


## 环境安装

全局安装vue-cli

```shell
npm install -g @vue/cli
```

## 创建uni-app

Q
qiang 已提交
15
* 使用正式版(对应HBuilderX最新正式版)
Q
qiang 已提交
16

Q
qiang 已提交
17 18 19
  ```shell
  vue create -p dcloudio/uni-preset-vue my-project
  ```
Q
qiang 已提交
20

Q
qiang 已提交
21
* 使用alpha版(对应HBuilderX最新alpha版)
F
update  
fasttian 已提交
22

Q
qiang 已提交
23 24 25
  ```shell
  vue create -p dcloudio/uni-preset-vue#alpha my-alpha-project
  ```
F
update  
fasttian 已提交
26

Q
qiang 已提交
27 28 29 30 31 32 33 34 35
* 使用Vue3/Vite版
  * 创建以 javascript 开发的工程(如命令行创建失败,请直接访问 [gitee](https://gitee.com/dcloud/uni-preset-vue/repository/archive/vite.zip) 下载模板)
    ```shell
    npx degit dcloudio/uni-preset-vue#vite my-vue3-project
    ```
  * 创建以 typescript 开发的工程(如命令行创建失败,请直接访问 [gitee](https://gitee.com/dcloud/uni-preset-vue/repository/archive/vite-ts.zip) 下载模板)
    ```shell
    npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project
    ```
F
update  
fasttian 已提交
36

F
update  
fasttian 已提交
37
此时,会提示选择项目模板(使用Vue3/Vite版不会提示,目前只支持创建默认模板),初次体验建议选择 `hello uni-app` 项目模板,如下所示:
Q
qiang 已提交
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

<div>
<img src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/h5-cli-01.png" width="300">
</div>

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

更多支持的下载方式,请参考这个插件的说明:[download-git-repo](https://www.npmjs.com/package/download-git-repo)

#### 国内特殊情况
模板项目存放于 Github,由于国内网络环境问题,可能下载失败。针对此问题可以尝试如下措施:
* 更换网络重试,比如使用 4g 网络
* 在设备或路由器的网络设置中增加 DNS(如:8.8.8.8)
* 在设备中增加固定的 hosts(如:140.82.113.4 github.com)

Q
qiang014 已提交
54
#### 修改依赖为指定版本@cliversion
Q
qiang 已提交
55

Q
qiang 已提交
56
可以使用 [@dcloudio/uvm](https://www.npmjs.com/package/@dcloudio/uvm) 管理编译器的版本:
Q
qiang 已提交
57

Q
qiang 已提交
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
* 更新到最新正式版
  ```shell
  npx @dcloudio/uvm
  ```
* 更新到最新 alpha 版
  ```shell
  npx @dcloudio/uvm alpha
  ```
* 更新到正式版指定版本
  ```shell
  npx @dcloudio/uvm 3.2.12.20211029
  ```
* 更新到 alpha 版指定版本
  ```shell
  npx @dcloudio/uvm 3.2.14.20211112-alpha
  ```
Q
qiang014 已提交
74

Q
qiang 已提交
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
## 运行、发布uni-app

```shell
npm run dev:%PLATFORM%
npm run build:%PLATFORM%
```

``%PLATFORM%`` 可取值如下:

|值|平台|
|---|---|
|app-plus|app平台生成打包资源(支持npm run build:app-plus,可用于持续集成。不支持run,运行调试仍需在HBuilderX中操作)|
|h5|H5|
|mp-alipay|支付宝小程序|
|mp-baidu|百度小程序|
|mp-weixin|微信小程序|
Q
qiang014 已提交
91
|mp-toutiao|字节跳动小程序|
Q
qiang014 已提交
92
|mp-lark|飞书小程序|
Q
qiang 已提交
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|mp-qq|qq 小程序|
|mp-360|360 小程序|
|mp-kuaishou|快手小程序|
|quickapp-webview|快应用(webview)|
|quickapp-webview-union|快应用联盟|
|quickapp-webview-huawei|快应用华为|

可以自定义更多条件编译平台,比如钉钉小程序,参考[package.json文档](https://uniapp.dcloud.io/collocation/package)

## 运行并发布快应用@quickapp
快应用有两种开发方式,uni-app均支持:
- 类小程序webview渲染方式:[https://ask.dcloud.net.cn/article/37182](https://ask.dcloud.net.cn/article/37182)
- 原生渲染方式:[https://ask.dcloud.net.cn/article/37145](https://ask.dcloud.net.cn/article/37145)


#### 运行并发布快应用(webview)@quickapp-webview
HBuilderX 2.7.12+ 版支持


#### 运行并发布快应用(webview)-华为@quickapp-webview-huawei
HBuilderX 2.7.10+ 版支持

华为快应用文档-小程序转快应用 [https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickapp-filestructure](https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickapp-filestructure)


**其他:**

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

## 使用cli创建项目和使用HBuilderX可视化界面创建项目有什么区别

#### 编译器的区别

Q
qiang014 已提交
132
* ``cli`` 创建的项目,编译器安装在项目下。并且不会跟随HBuilderX升级。如需升级编译器,可以使用 [@dcloudio/uvm](https://www.npmjs.com/package/@dcloudio/uvm) 管理编译器的版本,如 ```npx @dcloudio/uvm```
Q
qiang 已提交
133 134 135 136 137 138 139 140 141
* HBuilderX可视化界面创建的项目,编译器在HBuilderX的安装目录下的plugin目录,随着HBuilderX的升级会自动升级编译器。
* 已经使用``cli``创建的项目,如果想继续在HBuilderX里使用,可以把工程拖到HBuilderX中。注意如果是把整个项目拖入HBuilderX,则编译时走的是项目下的编译器。如果是把src目录拖入到HBuilderX中,则走的是HBuilderX安装目录下plugin目录下的编译器。
* ``cli``版如果想安装less、scss、ts等编译器,需自己手动npm安装。在HBuilderX的插件管理界面安装无效,那个只作用于HBuilderX创建的项目。
 
#### 开发工具的区别
* ``cli``创建的项目,内置了d.ts,同其他常规npm库一样,可在[vscode](https://ask.dcloud.net.cn/article/36286)[webstorm](https://ask.dcloud.net.cn/article/36307)等支持d.ts的开发工具里正常开发并有语法提示。
* 使用HBuilderX创建的项目不带d.ts,HBuilderX内置了uni-app语法提示库。如需把HBuilderX创建的项目在其他编辑器打开并且补充d.ts,可以在项目下先执行 ``npm init``,然后``npm i @types/uni-app -D``,来补充d.ts。
* 但vscode等其他开发工具,在vue或uni-app领域,开发效率比不过HBuilderX。详见:[https://ask.dcloud.net.cn/article/35451](https://ask.dcloud.net.cn/article/35451)
* 发布App时,仍然需要使用HBuilderX。其他开发工具无法发布App,但可以发布H5、各种小程序。如需开发App,可以先在HBuilderX里运行起来,然后在其他编辑器里修改保存代码,代码修改后会自动同步到手机基座。
刘继东 已提交
142
* 如果使用``cli``创建项目,那下载HBuilderX时只需下载23.31M的标准版即可。因为编译器已经安装到项目下了。
Q
qiang 已提交
143 144 145
*`cli` 使用有疑问,欢迎扫码加入 uni-app 微信交流群讨论:
    <br/><img src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/wx-barcode.png" width="250"/>

D
DCloud_LXH 已提交
146
注意:HBuilderX创建的项目,一样可以使用npm,参考:[NPM 支持](/tutorial/page-script?id=npm支持)