Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@dcloudio/vue-cli-plugin-uni

dcloudio15.8kApache-2.02.0.2-4050720250324001TypeScript support: included

uni-app plugin for vue-cli 3

readme

uni-app

简体中文 | English

uni-app 是一个使用 Vue.js 开发小程序、H5、App的统一前端框架。官网地址:https://uniapp.dcloud.io

开发者使用 Vue 语法编写代码,uni-app 框架将其编译到 小程序(微信/支付宝/百度/字节跳动/QQ/快手/钉钉/小红书)、App(iOS/Android)、H5等多个平台,保证其正确运行并达到优秀体验。

uni-app的特点

  • 开发者和案例更多:HBuilder装机量800万台,开发者社区月活百万,70多个QQ微信群承载10万人。案例众多,uni统计月活超10亿(详见
  • 性能更高(见评测
  • 更丰富的周边生态,插件市场数千款插件
  • 提供比小程序原生开发更好的开发体验、更高的工程化效率
  • 跨端抹平度更完善,且各端特色发挥更灵活,可真正实现一套代码多端覆盖,无需各端多头维护升级
  • 权威认可:阿里小程序官方工具内置uni-app(详见)、腾讯课堂官方自制uni-app培训视频(详见

扫码体验

开发一次,编译到14个平台。依次扫描14个二维码,亲自体验最全面的跨平台效果!

注: 某些平台不能提交简单demo,补充了一些其他功能。

快速开始

uni-app支持通过vue-cli命令行、HBuilderX可视化界面两种方式快速创建项目:

项目案例

案例展示:uniapp.dcloud.io/case

欢迎提交你的应用,uni-app案例征集

需求墙

uni-app计划支持的功能点,会在需求墙上进行展示,征集开发者的投票意见,前往投票

更新日志

uni-app一直保持高频的更新迭代,详见正式版更新日志Alpha版更新日志

论坛

由于DCloud有70多个QQ、微信群,官方已无法维护更多交流群。请开发者到官方论坛交流:https://ask.dcloud.net.cn/explore/ 。论坛提供了比issues更专业的工具服务。

插件市场

uni-app有丰富的插件生态,众多开发者提交了数千款组件、sdk、项目模板,详见:https://ext.dcloud.net.cn/

除了众多三方ui库,官方还提供了uni-ui,在性能和跨端兼容方面有更强的优势。详见:https://ext.dcloud.net.cn/plugin?id=55

现有项目如何迁移到uni-app体系

常见疑问

  • 问:不同端有不同的需求、不同的特色,登录支付也不一样,如何统一?
  • 答:差异部分使用条件编译。uni-app提供了灵活强大的条件编译。可以完美处理复用部分和差异部分。真正一套工程源码。当业务升级时,不再需要多端维护。如果多端维护,经常会因为某些端的流量不大,就一直拖延无法让那些用户享受到最新服务。另外登录支付在客户端部分,已经被uni-app统一成一样的api了。
  • 问:多端是不是一种妥协,是否会造成性能下降?
  • 答:good question。多端且不影响性能,确实很难,但uni-app做到了。在h5端,它的性能、包体积与直接使用vue.js开发一致; 在小程序端,它的性能比大多数开发框架更好,uni-app底层自动处理的setdata差量同步机制,比开发者手动写setdata更好,就像使用vue.js更新界面比手动写js修改dom更高效一样; 在App,uni-app支持webview渲染和原生渲染双引擎,启用原生渲染时,css写法受限,但性能是很接近原生开发的效果的,在当前的手机环境下,千万日活以下的应用在App使用uni-app也不会遇到任何压力。当然也可以在已经做好的原生App中将部分页面改为uni-app实现; 此外,我们会把很多跨端处理放在编译期完成的,这样会减少对运行期的效率影响。
  • 问:不做多端,是不是不需要uni-app?
  • 答:不是。大量开发者用uni-app只做一个端,详见案例。对于开发者而言,一个优秀工具在手,做什么都不愁。

  • 问:uni-app以后会不会变更开源协议,转向收费?

  • 答:官方承诺永远不会变更开源协议。无论HBuilderX、uni-app、App,面向中国人永久免费。

更多资料

贡献指南

如果你想参与贡献,请先阅读贡献指南

changelog

3.1.0 (2019-12-08)

Features

  • include filename in finalCompilerOptions (#74) (3dda72d)
  • support AST for template compile (#68) (ed44d6f)
  • support audio src in transformAssetUrls option by default (#72) (47f1341)

3.0.2 (2019-11-06)

Bug Fixes

  • also include "lib" folder for type definitions (dd42df1), closes #73

3.0.1 (2019-11-04)

Bug Fixes

  • should not crash when prettier failed (89e7900)
  • unpin prettier version (59a01bb)

3.0.0 (2019-04-11)

Features

BREAKING CHANGES

  • Using sass instead of node-sass package.

2.6.0 (2019-02-21)

Features

  • implement ::v-deep as a shadow piercing combinator (#54) (8b2c646)

2.6.0 (2019-02-21)

Features

  • implement ::v-deep as a shadow piercing combinator (#54) (8b2c646)

2.5.2 (2019-01-31)

Bug Fixes

  • fix sourceMap path separator on Windows, default sourceRoot to "" (#51) (df32cd9), closes #47
  • generate correct source-map when content is not padded (#52) (81be0ca)

2.5.1 (2019-01-25)

Bug Fixes

  • fix sourceMap path separator on Windows, default sourceRoot to "" (#51) (df32cd9), closes #47

2.5.0 (2019-01-08)

Features

  • add 'use' tag of SVG to 'transformAssetUrls' option as default (#45) (f4e3336)

2.4.0 (2019-01-02)

Bug Fixes

  • do not insert newline if style is already minified (2603ee2)
  • Forward preprocessor options to less (#25) (3b19c1e), closes #24
  • Move trim and scoped postcss plugins at the start of plugin list (#36) (0d52d86)
  • pin prettier version (5f138a6)
  • remove space after selector when inserting scoped attribute (5b299ed), closes vue-loader/#1370
  • should work with variable named render (close #23) (273827b)
  • support standalone pseudo element selectors (#33) (d6cfbbf)
  • Typings for SFCDescriptor and SFCCustomBlock (#29) (bb09115)

Features

  • scoped-css: support leading >>> or /deep/ in selectors (1a3b5bb)
  • add prettify option (#42) (db3655b)
  • Support stylus as <style> lang (#18) (986084e)

2.3.1 (2018-12-11)

Bug Fixes

  • do not insert newline if style is already minified (2603ee2)
  • Move trim and scoped postcss plugins at the start of plugin list (#36) (0d52d86)

2.3.0 (2018-10-22)

Bug Fixes

  • support standalone pseudo element selectors (#33) (d6cfbbf)
  • Typings for SFCDescriptor and SFCCustomBlock (#29) (bb09115)

2.2.0 (2018-08-16)

Features

  • scoped-css: support leading >>> or /deep/ in selectors (1a3b5bb)

2.1.2 (2018-08-09)

Bug Fixes

2.1.1 (2018-08-07)

Bug Fixes

2.1.0 (2018-07-03)

Bug Fixes

  • Forward preprocessor options to less (#25) (3b19c1e), closes #24
  • should work with variable named render (close #23) (273827b)

Features

2.0.0 (2018-06-03)

Features

  • Add async style compilation support (#13) (54464d6)
  • allow/require compiler to be passed in for parse (caa1538)

BREAKING CHANGES

  • vue template compiler must now be passed to parse via options.

1.3.1 (2018-05-28)

Bug Fixes

  • default parser was removed from prettier (#15) (598224d)

1.3.0 (2018-05-22)

Features

  • include href for <image> in transformAssetUrls (close #12) (86fddc2)
  • Provide installation instructions on missing language preprocessors (#10) (97e772c)

1.2.1 (2018-04-26)

Bug Fixes

1.2.0 (2018-04-26)

Bug Fixes

Features

  • accept postcss options and plugins (#7) (1456e3d)

1.1.0 (2018-04-24)

Bug Fixes

  • use more strict regex for matching css animation rules (4644727)

Features

  • adds stylus & less preprocessor (#5) (f2fd8b9)
  • preprocess scss/sass styles with node-sass (#4) (9204f16)