教你用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 相关文章推荐
如何判断图片地址是否失效
Feb 02 Javascript
JavaScript面向对象编程
Mar 02 Javascript
使用Jquery实现每日签到功能
Apr 03 Javascript
js简单实现标签云效果实例
Aug 06 Javascript
javascript常用函数(2)
Nov 05 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
微信小程序 详解Page中data数据操作和函数调用
Jan 12 Javascript
Node.js中看JavaScript的引用
Apr 22 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
Vue.js中组件中的slot实例详解
Jul 17 Javascript
JS使用贪心算法解决找零问题示例
Nov 27 Javascript
layer页面跳转,获取html子节点元素的值方法
Sep 27 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
CI框架整合smarty步骤详解
2016/05/19 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
python读文件的步骤
2019/10/08 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
python中if及if-else如何使用
2020/06/02 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
小学生评语大全
2014/04/18 职场文书
个人课题方案
2014/05/08 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript
css弧边选项卡的项目实践
2023/05/07 HTML / CSS