教你用Cordova打包Vue项目的方法


Posted in Javascript onOctober 17, 2017

现在国内越来越多的开发者使用Vue开发混合app,但是当大家开发完成过后才发现不知道该怎么将Vue项目打包成app。
据我现在的了解打包Vue项目目前流行的就是使用weex和cordova。weex是阿里提供并且Vue的作者也极力推荐的,有兴趣的可以去学习使用一下。因为我本身是做angular+ionic的,所以比较青睐cordova,下面我就教大家怎么使用cordova打包Vue项目:

第一步:安装cordova

如果已经安装则直接跳过,否则执行以下命令:

npm install -g cordova

如果这个命令都不会运行,那我建议你不要继续往下看了。

第二步:新建cordova项目

执行命令

cordova create cordovaApp com.cordova.testapp
cd cordovaApp
cordova platform add android

到这里我们的cordova项目就创建好了。

第三步:修改vue项目

如果你没有vue项目的话,自行百度去新建一个vue项目吧。

首先修改vue项目的index.html

在head之间加入

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
  <meta name="format-detection" content="telephone=no">
  <meta name="msapplication-tap-highlight" content="no">
  <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">

这里注意加入<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">这个的时候可能导致页面样式改变,如果改变则不加,否则还是建议加上。

然后引入cordova.js

<body>
  <div id="app"></div>
  <script type="text/javascript" src="cordova.js"></script>
  <!-- built files will be auto injected -->
</body>

然后修改src中的main.js为以下代码

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false

/* eslint-disable no-new */

document.addEventListener('deviceready', function() {
  new Vue({
    el: '#app',
    router,
    store,
    template: '<App/>',
    components: { App }
  })
  window.navigator.splashscreen.hide()
}, false);

最后修改config文件夹中的index.js文件

修改build中的

assetsSubDirectory: 'static',
    assetsPublicPath: '/',

assetsSubDirectory: '',
    assetsPublicPath: '',

然后运行

npm run dev

看看是否能够运行起来,如果正常说明到这里是没有问题的。

第四步:将vue文件放到cordova项目中并打包

先在vue项目中运行

npm run build

执行完成后会生成一个dist文件夹,找到这个文件夹将里面的所有文件复制到你的cordova项目的www文件夹下替换它原有的文件。

然后就可以执行

cordova build android

会生成一个可执行的apk文件,安装即可。

到这里就完成了我们vue项目的打包。

友情提示:

如果vue项目在运行npm run dev或者npm run build的时候遇到问题一般不是代码出错的话可以将node_modules文件夹删除使用npm install安装。

如果是因为eslint导致代码检查不通过的话,可以将Vue项目的build文件夹下的webpack.base.config文件中的rules

{
       test: /\.(js|vue)$/,
       loader: 'eslint-loader',
       enforce: 'pre',
       include: [resolve('src'), resolve('test')],
       options: {
        formatter: require('eslint-friendly-formatter')
       }
      },

这段代码注释即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS弹出窗口代码大全(详细整理)
Dec 21 Javascript
通过遮罩层实现浮层DIV登录的js代码
Feb 07 Javascript
jQuery 文本框得失焦点的简单实例
Feb 19 Javascript
Javscript删除数组中指定元素并返回新数组
Mar 06 Javascript
js实现正方形颜色从下往上升的效果
Aug 04 Javascript
JavaScript中的console.dir()函数介绍
Dec 29 Javascript
jQuery中extend函数详解
Jul 13 Javascript
jQuery侧边栏实现代码
May 06 Javascript
JS数组排序方法实例分析
Dec 16 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
Jun 13 Javascript
jQuery初级教程之网站品牌列表效果
Aug 02 jQuery
vue打包后显示空白正确处理方法
Nov 01 Javascript
vue与TypeScript集成配置最简教程(推荐)
Oct 17 #Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
Oct 17 #Javascript
javascript 中模板方法单例的实现方法
Oct 17 #Javascript
vue滚动轴插件better-scroll使用详解
Oct 17 #Javascript
react中的ajax封装实例详解
Oct 17 #Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 #Javascript
打造通用的匀速运动框架(实例讲解)
Oct 17 #Javascript
You might like
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php实现计数器方法小结
2015/01/05 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
javascript数组使用调用方法汇总
2007/12/08 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
python 图片验证码代码
2008/12/07 Python
python正则表达式match和search用法实例
2015/03/26 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
python实现图片横向和纵向拼接
2020/03/05 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
Champion官网:美国冠军运动服装
2017/01/25 全球购物
公司授权委托书范文
2014/09/21 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
Golang jwt身份认证
2022/04/20 Golang