本地打包测试

  1. http-server是一个基于node.js的简单的,零配置的命令行http服务器。
    安装:npm install http-server -g
    使用:http-server [path] [options]
  2. npm run dev (或npm start)。
    让项目通过localhost和ip都可以访问(若项目localhost可以访问,IP不能访问,那就去修改 config/index.js 里面的 host: 'localhost' 为 host: '0.0.0.0')。
  3. npm run build,生成dist目录。
    不管之前有没有修改打包配置都不影响dist被http-server访问(以下是没有打包配置的项目)。
  4. 在dist下输入http-server -c 10,通过生成的地址访问项目。
    要注意端口号,使用的是项目的端口号。

     
    图片.png

使用hbuilder打包测试

  1. 在hbuilder里新建一个移动App的项目,选择空模板,填写项目名,语法选择ES5/ES6均可。

  2. 项目里的manifest.json文件保留,其余全部删除,然后把dist里面的东西全拷进去。

     
    图片.png
  3. 首先,要保证index.html可以在浏览器里运行起来(验证项目基于hbuilder本身的一个服务器可不可以运行)。
    没有进行打包配置是不能成功访问项目的,都是引入资源路径问题。

  4. 进行build配置
    1)根目录下config/index.js找到里面build下面的assetsPublicPath:'/',把它改成assetsPublicPath:'./'(或assetsPublicPath:'')。

     
    图片.png

    配置完成后,通过hbuilder在浏览器就可以运行跳转了。但可能有一些静态图片资源访问不到(如果图片资源转化为了base64就不会出现这种问题)

2)解决静态图片资源访问不到的问题。
注:写web项目,静态资源(图片、音/视频)还是存放在static目录下比较好。

解决方案一:修改静态资源路径( 这个方法我猜的,我测试成功)
根目录下/build/utils.js里面加一句代码约47-55行位置,publicPath:'../../'。看图:

    if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
publicPath: '../../' // 这句就是加的代码,不要找错位置
})
} else {
return ['vue-style-loader'].concat(loaders)
}

解决方案二:base64
根目录/build/webpack.base.conf.js文件,修改打包时base64的控制范围,打包时候尽量改大。

 
图片.png

hbuilder打包

  1. manifest.json配置
    1) 配置应用名称、应用描述、应用版本、appID(appID是登录以后自动获取的,不用管)。

     
    图片.png

2) 配置应用logo,选择自动生成所以图标并替换。
3) 配置启动图片,不同尺寸需要不同的图片,让UI做图,如果不配置此项,那就是默认hbuilder的启动图片。
4) sdk、模块权限、引用关系、代码视图、......,不需要管。

  1. 发起云打包,没有ios证书,只能使用android的公用证书
    发行 > 原生app云打包:包名一般是倒着写域名,打包

     
    图片.png
  2. 打包完成后,点击下载链接就可以下载webapp。

安装在手机后的一些问题

  1. iconfont没有显示
    这是因为,web是http协议,而手机不是http协议。在使用到iconfont的地方,url加上http协议:

     
    图片.png
  2. 为了缩小app的大小,dist/static/js里面的以 .map 结尾的文件都可以删除。

作者:chan_it
链接:https://www.jianshu.com/p/e327eca486db
来源:简书

vueApp打包的更多相关文章

  1. hbuilder 打包 vueAPP

    1:设置状态栏颜色 在manifest.json 找到 plus 下添加 "statusbar": { "immersed": true/*沉浸式状态栏*/ 设 ...

  2. vue-app开发入门

    vue的中文文档在这里 1. 简单地引用vue.js 使用vue框架最简单的方式就是写一个HTML页面然后引用vue.js啦. 使用<script> 标签就可以将vue.js导入并且使用它 ...

  3. parcel 中小型项目打包工具

    "0配置"打包器(bundler)Parcel Parcel官网(有中文文档) webpack 要有大量的配置,这样带来的成本就是复杂性--与此相对的,Parcel 带来了简洁性. ...

  4. cordova打包vue2(webpack)android、ios app

    使用cordova打包vue2(webpack)app for android ios1.vue项目通过vue-cli脚手架建立项目,使用webpack进行打包,下边是一整套命令. #npm 版本最好 ...

  5. VueApp 自动更新解决plus is not defined问题

    一,今天用VueApp 做自动更新调用按照网上列子直接 Plus 打包编译后出现了plus is not defined 发现需要引用document.addEventListener("p ...

  6. Android Studio 多个编译环境配置 多渠道打包 APK输出配置

    看完这篇你学到什么: 熟悉gradle的构建配置 熟悉代码构建环境的目录结构,你知道的不仅仅是只有src/main 开发.生成环境等等环境可以任意切换打包 多渠道打包 APK输出文件配置 需求 一般我 ...

  7. 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付

    前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...

  8. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  9. .NET Core 系列5 :使用 Nuget打包类库

    NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...

随机推荐

  1. PowerShell 反弹渗透技巧

    Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能,并且与现有的WSH保持向后兼容,因此它的脚本程序不仅能访 ...

  2. POJ 1789 Prim

    给定N个字符串,某个字符串转为另一个字符串的花费为他们每一位不相同的字符数. 求最小花费Q. Input 多组输入,以0结束. 保证N不超过2000. Output 每组输出"The hig ...

  3. empty和isset的区别

    1.empty 判断一个变量是否为空 null.false.0.0.0.’0′.array() .' '.var $a   都会返回true. 2.isset 判断一个变量是否设置 0.00.’0′. ...

  4. 学习前端 第一天之html标签补充

    一.常用浏览器内核 Trident(IE内核) Gecko(firefox) webkit(Safari) Chromium/Blink(chrome) Blink(Opera) 二.常见标签回顾 a ...

  5. FastJson学习:JSON格式字符串、JSON对象及JavaBean之间的相互转换

    当前台需要传送一系列相似数据到后端时,可以考虑将其组装成json数组对象,然后转化为json形式的字符串传输到后台 例如: nodes = $('#PmPbsSelect_tree').tree('g ...

  6. Linux内核的arch目录

  7. 安装python包时出现VC++ 错误的解决方案

    方式一 就是按照提示在微软的官网上下载宇宙第一编辑器VS,安装完之后卸载掉就好了. 方式二 下载whl包安装 因为python有很多native的包,不是纯python代码,用了诸如c/c++的代码, ...

  8. redis和memcacahe、mongoDB的区别

    都是非关系型数据库,性能都非常高,但是mongoDB和memcache.redis是不同的两种类型.后两者主要用于数据的缓存,前者主要用在查询和储存大数据方面,是最接近数据库的文档型的非关系数据库. ...

  9. 判断一个python字符串中是否包含中文字符

    #在python中一个汉字算一个字符,一个英文字母算一个字符 #用 ord() 函数判断单个字符的unicode编码是否大于255即可. def is_contain_chinese(check_st ...

  10. 08_Redis通用命令

    keys pattern:获取所有与pattern匹配的key,返回所有与该key匹配的keys:通配符:*表示任意0个或多个任意字符,?表示任意一个字符