教你用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 自动安装exe程序
Nov 30 Javascript
jQuery Flash/MP3/Video多媒体插件
Jan 18 Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 Javascript
JQuery里选择超链接的实现代码
May 22 Javascript
JQuery实现表格动态增加行并对新行添加事件
Jul 30 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
Jan 05 Javascript
jQuery Ajax调用WCF服务详细教程
Mar 31 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
May 04 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
jQuery使用ajax_动力节点Java学院整理
Jul 05 jQuery
vue-cli中的webpack配置详解
Sep 25 Javascript
mui back 返回刷新页面的实例
Dec 06 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
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
PHP实现类似题库抽题效果
2018/08/16 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
Python实现的简单发送邮件脚本分享
2014/11/07 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
儿科护士自我鉴定
2013/10/14 职场文书
关爱残疾人标语
2014/06/25 职场文书
感恩教育月活动总结
2014/07/07 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
单位介绍信格式范文
2015/05/04 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
python 字典和列表嵌套用法详解
2021/06/29 Python
一文搞懂Java中的注解和反射
2022/06/21 Java/Android