简介


  weexpack 是 weex 新一代的工程开发套件,是基于weex快速搭建应用原型的利器。它能够帮助开发者通过命令行创建weex工程,添加相应平台的weex app模版,并基于模版从本地、GitHub 或者 weex 应用市场安装插件,快速打包 weex 应用并安装到手机运行,对于具有分享精神的开发者而言还能够创建weex插件模版并发布插件到weex应用市场。

  weexpack 所提供的命令大致可分为三组,分别是:

  • 打包命令

  • weexpack create — 创建 weex 工程项目。

  • weexpack platform add/remove — 安装/移除 weex 应用模版,默认模版支持 weex bundle 调试和插件机制。

  • weexpack platform list — 查看已安装的平台模版及版本。

  • weexpack platform run - 打包应用并安装到设备运行。

  • 插件使用者命令

  • weexpack plugin add/remove — 安装/移除 weex 插件,支持从本地、GitHub 或者 weex 应用市场安装插件。

  • weexpack plugin list — 查看已安装的插件及版本。

  • 插件开发者命令

  • weexpack plugin create - 生成weex插件模版,主要是配置文件和必需的目录。

  • weexpack plugin publish - 发布插件到weex插件市场。

安装


  环境要求:

  安装命令

  首先,全局安装 weex-pack 命令:

$ npm install -g weexpack@0.3.12-beta

    或者 在 clone 的 weexpack 根目录下执行:

$ npm install

注: 目前最新的weexpack版本是0.3.12的测试版, 正式版是0.3.11, 但正式版在MacOS上无法添加platform, 会出现 "Error:Unexpected token <<" 的错误.

  解决办法就是重新安装0.3.12-beta版本, 在terminal执行一次:

$ npm install -g weexpack@0.3.-beta  

  相信阿里会很快解决这个问题. ^_^

打包及插件使用


  打包主要过程如下图所示,其中插件操作是打包过程的可选项,不是必须的。

 

  

详细步骤

  1. 创建工程

  在terminal中进入你需要放置工程目录的文件夹中, 例如放在桌面上, 执行如下命令:

$ cd Desktop
$ weexpack create appName

  此时 在桌面上就已经建好了项目工程文件夹, 目录如下:

           

  platforms: 平台模板目录

  plugins: 插件下载目录

  src: 业务代码目录

  通过 create 命令创建的工程默认不包含 ios 和 android 工程模版,创建完成之后就可以切换到appName目录下并安装依赖。  

$ cd appName && npm install

  等一段时间, 当完成后 目录中或多一个node_modules的文件夹, 这个文件夹中的内容就是要添加的依赖。

  

  2. 添加工程模板

  添加应用模版,官方提供的模版默认支持 weex bundle 调试和插件机制,注意模版名称均为小写,模版被安装到platforms目录下。

  添加模板时terminal仍处于项目工程的根目录下。

  >>添加android模版:

$ weexpack platform add android

  添加完成后Android模板目录如下:

  

  

  >> 添加iOS模板:

$ weexpack platform add ios

  添加完成后iOS模板目录如下:

  

  对于已安装的模版可以使用weexpack platform list命令查看:

  

  如果想要删除某个不需要的平台可以使用 weexpack platform remove移除,比如window平台用户是不需要ios模版的,可用如下命令移除。

$ weexpack platform remove android

  3. 安装 weex 插件(可选项)

添加想要使用的插件,支持从本地或者 weex 应用市场安装插件。

  >>添加想要使用的插件,支持从本地或者 weex 应用市场安装插件。

$ weexpack plugin add path/to/plugin

  >> 从插件市场添加插件,例如 weex-chart。

$ weexpack plugin add weex-chart

  

  模版的weexplugin是插件安装的目标工程。以安卓为例,其目录如下:

weexplugin
├── build.gradle // 插件编译脚本,工具自动维护
├── libs
├── proguard-rules.pro
├── src
│ └── main
│ ├── AndroidManifest.xml // 插件android manifest配置文件
│ ├── java
│ │ ├── // 插件src安装目录
│ │ └── com
│ │ └── alibaba
│ │ └── weex
│ │ └── plugin
│ │ ├── ConfigXmlParser.java // 配置文件解析器
│ │ ├── PluginConfig.java // 外部接口
│ │ ├── PluginEntry.java // 插件描述
│ │ └── PluginManager.java // 插件管理器
│ └── res // 插件资源安装目录
│ ├── drawable
│ ├── values
│ │ └── strings.xml
│ └── xml
│ └── config.xml // 插件配置文件,PluginManager解析配置文件加载插件

  

  对于已安装的插件可以使用 weexpack plugin list 命令查看。

  • 查看已安装插件

     $ weexpack plugin list

  如果想要删除某个不需要的插件可以使用 weexpack plugin remove 移除,比如weex-chart

  • 移除插件,例如weex-chart

    $ weexpack plugin remove weex-chart

  

  4. 打包应用并安装运行

  完成以上步骤并we代码放在src目录下,就可以打包运行了,打包过程中可能要下载依赖和编译工具,这会是个较为耗时的过程,安装运行需要打开模拟器或者连接设备。

  打包运行android应用    

$ weexpack run android
  • 你可以更改项目目录下的android.config.json

    • AppName: 应用名
    • AppId: application_id 包名
    • SplashText: 欢迎页上面的文字
    • WeexBundle: 指定的weex bundle文件(支持文件名和url的形式)

    文件名则以本地文件的方式加载bundle,url则以远程的方式加载bundle 如果以本地方式指定bundle .we文件请放到src目录。

  • 打包运行ios应用

    • 模拟器运行

      $ weexpack run ios
    • 构建ipa包

      $ weexpack build ios

    构建包的过程中,将会提示让您输入CodeSign(证书)Profile(provisioning profile),AppId,只有输入真实的这些信息才能成功打包。 其余如AppName,和入口weex bundle文件可以编辑项目目录下的ios.config.json配置。 打完包成功之后,可以在/playground/build/ipa_build/目录下获取ipa文件

    *注:证书需要预先安装到keychain中,在keychain中点击右键获取证书id(证书名称),provisioning profile文件(mobileprovision)需要获取UUID,进入目录 可以看到mobileprovision_UUID.sh文件,此文件可以获取到UUID

    mobileprovision_UUID.sh用法如下: $ ./mobileprovision_UUID.sh   \*mobileprovision 参数(*mobileprovision)为provisioning profile文件路径

  • 打包html5平台:

    $ weexpack build web

    这样你可以把打包后的资源上传到cdn服务器,然后上线你的web项目。

  • 在 html5 平台运行:

    $ weexpack run web

 本博客插件部分摘自:https://www.npmjs.com/package/weexpack

 南心芭比: 热爱分享, 收获快乐~

Weexpack 使用教程的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  3. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  4. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  5. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

  6. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  7. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  8. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  9. Virtual Box配置CentOS7网络(图文教程)

    之前很多次安装CentOS7虚拟机,每次配置网络在网上找教程,今天总结一下,全图文配置,方便以后查看. Virtual Box可选的网络接入方式包括: NAT 网络地址转换模式(NAT,Network ...

随机推荐

  1. C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!

    说起异步,Thread,Task,async/await,IAsyncResult 这些东西肯定是绕不开的,今天就来依次聊聊他们 1.线程(Thread) 多线程的意义在于一个应用程序中,有多个执行部 ...

  2. 笑谈ArcToolbox (3) ArcToolbox的一亩三分地

    笑谈ArcToolbox (3) ArcToolbox的一亩三分地 by 李远祥 每个人都会有一些鲜为人知的小秘密,都有着不允许别人染指的一亩三分地.软件是人编写的,当然也会给它留有自己所拥有的一亩三 ...

  3. SOCKET是什么

    一.问题的引入--socket的引入是为了解决不同计算机间进程间通信的问题 1.socket与进程的关系 1).socket与进程间的关系:socket   用来让一个进程和其他的进程互通信息(IPC ...

  4. 使用HeartBeat实现高可用HA的配置过程详解

    一.写在前面 HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至 ...

  5. ssh无法远程登陆别的机器

    ssh无法远程登陆别的机器,提示报错: ssh: symbol lookup error: ssh: undefined symbol: EVP_aes_128_ctr 解决方法如下: 给相应配置文件 ...

  6. 无限二等分[0,1]这个区间之后还剩下啥?what's left after dividing an unit interval [0,1] infinitely many times?

    Dividing an unit interval \([0,1]\) into two equal subintervals by the midpoint \(\dfrac {0+1} {2}=\ ...

  7. simple-spa 一个简单的单页应用实例

    上两篇文章说过要写一个简单的单页应用例子的, 迟迟没有兑诺, 实在有愧 哈哈.这篇写给小白用户哈. 正好趁今天风和日丽,事情不多, 把从项目里的代码扣取了一下, 整理了一个简单的例子.因为我们生产项目 ...

  8. C/C++中慎用宏(#define)

    宏的定义在程序中是非常有用的,但是使用不当,就会给自身造成很大的困扰.通常这种困扰为:宏使用在计算方面. 本例子主要是在宏的计算方面,很多时候,大家都知道定义一个计算的宏,对于编译和编程是多么的有用. ...

  9. es6的解构赋值学习(1)

    相对es5的简单的"="赋值来说,es6增加了一种新的赋值模式--解构赋值,按照它的规则,可以从数组和对象中提取值来对变量进行赋值,个人觉得方便了很多,但是这个模式有点恶心人,相比 ...

  10. HTML5拖放事件-上传图片预览功能

    主要用到的知识点有dataTransfer对象和FileReader(读取文件信息) 1.创建简单的HTML标签: <body> <div id="box"> ...