weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
写在前面的话:
weex官方文档不完善,在整个实施过程中遇到过很多坑,中途几次想放弃,总是有些不甘心。攻坚克难,总也是会有一些收获,先将收获进行分享也或是记录,防止忘记。要想用好weex必须对es5/es6基础,vue体系,打包工具webpack有较深的了解;对ios,android有了解。
官方提供的weex脚手架不能指定入口文件,如果我们想要在项目中使用vuex,vue-router,没有入口文件将会变得比较复杂。那么该如何搭建具有入口文件的脚手架呢?首先,我们先把官方提供的脚手架使用一下,然后再其基础上进行修改
一. 初始化weex项目
$ weex init helloweex
二. 安装依赖包
$ cd helloweex
$ npm install
或者可以使用淘宝镜像安装
$ cnpm install
**注意!如果使用npm安装依赖,建议先手动创建node_modules目录再进行安装,避免后期出现权限不足的问题**
三. 在浏览器中进行测试
注意!在浏览器中显示成功并不意味着在本地就可以显示成功!因为这是两个不同的执行环境。
$ npm run serve
四. 此时会遇到第一个坑
原因:
https://www.npmjs.com/package/uglifyjs-webpack-plugin
解决方案:
1)安装 uglifyjs-webpack-plugin
$ cnpm i -D uglifyjs-webpack-plugin
2) 应用
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
module.exports = {
plugins: [
new UglifyJsPlugin()
]
}
3) 重新部署,不再报错!
五. 模拟器上运行
如果之前步骤可以完成,只能说明当前代码在浏览器上可以执行,能不能本地运行还需要再进行测试。要想本地测试必须安装模拟器(ios或android),本文章不提供具体的安装过程,如有需要,请自行查看其它文章。
本章以ios环境为例进行测试
依次执行如下命令
1) 安装ios平台
$ weex platform add ios
2) 安装依赖
$ cd platforms/ios
$ pod install
3) 运行
$ cd ../..
$ weex run ios (次过程较慢,需等待一会)
4) 选择运行环境后启动模拟器
六. 编写代码
查看webpack.config.js得知会,该脚手架会根据src下vue文件产生一个对应的.js文件存放到demo目录下,但是传统的vue开发,我们都希望有个入口文件(main.js或者entry.js),然后在该文件中导入其他模块,进行页面的总体配置等操作。
那么,我们应该如何使得当前项目具有入口文件呢?答案是只能修改webpack.config.js文件。
1)添加入口文件配置
2) 删除多余配置信息
删除getEntryFileContent函数
删除walk函数
删除walk() walk函数的调用
3) 在src目录下添加主vue,App.vue
4) 在src目录下添加入口文件entry.js,并且删除temp目录
5) 在浏览器中进行测试
$ npm run serve
6) 在ios模拟器上进行测试
$ weex run ios
7) 如果发现打包后的文件不叫index.js可以修改webpack.config.js
8)解决页面无法覆盖整个屏幕的问题
需要在原生代码中进行简单的修改
weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架的更多相关文章
- Spring5.x源码分析 | 从踩坑到放弃之环境搭建
Spring5.x源码分析--从踩坑到放弃之环境搭建 前言 自从Spring发行4.x后,很久没去好好看过Spring源码了,加上最近半年工作都是偏管理和参与设计为主,在技术细节上或多或少有点疏忽,最 ...
- vue+ vue-router + webpack 踩坑之旅
说是踩坑之旅 其实是最近在思考一些问题 然后想实现方案的时候,就慢慢的查到这些方案 老司机可以忽略下面的内容了 1)起因 考虑到数据分离的问题 因为server是express搭的 自然少 ...
- 微信小程序之mpvue+iview踩坑之旅
因为之前参照微信的原生的文档写过一些小程序的demo,写的过程比较繁琐,后来出了美团的mpvue,可以直接使用vue开发,其他的不作对比,这篇文章记录一下踩坑之旅. 参照mpvue http://mp ...
- Python 踩坑之旅进程篇其三pgid是个什么鬼 (子进程\子孙进程无法kill 退出的解法)
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4.1 技术关键字 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 Github: https: ...
- EasyTrader踩坑之旅总结
easytrader是用python写的可以调用主要券商完成自动化炒股的一个软件 ,但我用的是同花顺,在研究过程中,发现同花顺暂时调不通.后来搜索发现thstrade的源码作者说是easytrad ...
- Nebula Exchange 工具 Hive 数据导入的踩坑之旅
摘要:本文由社区用户 xrfinbj 贡献,主要介绍 Exchange 工具从 Hive 数仓导入数据到 Nebula Graph 的流程及相关的注意事项. 1 背景 公司内部有使用图数据库的场景,内 ...
- 我的微信小程序入门踩坑之旅
前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...
- vue踩坑之旅 -- computed watch
vue踩坑之旅 -- computed watch 经常在使用vue初始化组件时,会报一些莫名其妙的错误,或者,数据明明有数据,确还是拿不到,这是多么痛苦而又令人忍不住抓耳挠腮,捶胸顿足啊 技术点 v ...
- Python踩坑之旅其一杀不死的Shell子进程
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 坑后扩展 1.4.1 扩展知识 1.4.1 技术关键字 1.5 填坑总结 1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程 ...
随机推荐
- 06_android虚拟机介绍
分辨率不用选太高,否则会占用太大内存.你选高分辨率一跑起来会干掉你的500多MB的内存.1/8内存就没了.百分之97%或者是98%的设备都是ARM CPU.ARM自己不生产CPU,它生产的是一个标准的 ...
- 怀旧系列(3)----Pascal
Pascal语言是高中时代2000年左右为了参加计算机竞赛学习的一门语言(Turbo Pascal7.0).据说这么语言的结构化非常好,非常适合青少年形成一定的编程思想.但是现在的角度想想都是扯淡,现 ...
- 4. DVWA亲测暴力破解
LOW等级 我们先用burpsuite抓包,因为burpsuite提供了暴力破解模块 我们先创建一个1.txt文件夹,把正确的账号密码写进去 我们输入 Username:1 Password: ...
- linux下mysql远程链接
前言:我的系统是ubuntu,默认不支持mysql远程链接.接下来的步骤改变这点. 1,首先取消mysql本机绑定 编辑/etc/mysql/my.cnf 将”bind-address = 127.0 ...
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
在尝试内核开发之前,需要对内核有个整体的了解. 主要内容: 获取内核源码 内核源码的结构 编译内核的方法 内核开发的特点 1. 获取内核源码 内核是开源的,所有获取源码特别方便,参照以下的网址,可以通 ...
- .net动态代理-EMIT,AOP实现
动态代理实现原理: 通过动态基础目标类,重写目标虚方法,.net中实现手段-il Emit.Proxy项目源码,https://github.com/1448376744/Emit.Proxy 以下是 ...
- C++基础之C++编译调试
C++程序的实现(预处理,编译,连接)Linux平台编译gcc和g++都是GNU的编译器.1.对于.c后缀的文件,gcc把它当做是C程序:g++当做是C++程序:2.对于.cpp后缀的文件,gcc和 ...
- Docker删除私有仓库镜像
V2 安装删除脚本 # curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/dele ...
- 《OD玩阿里云》搭建环境
一.安装mysql 1. 解决乱码问题 http://www.ha97.com/5359.html http://blog.csdn.net/qiyuexuelang/article/details/ ...
- mac 终端命令kill掉某个指定端口
用mac电脑开发时,有时候会遇到端口占用的问题,导致我们,不得不去结束这个端口. 第一步在终端命令输入: lsof -i : 端口号(如:lsof -i:8080) 第二步: kill -9 PID ...