教你用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 GridView 实现自动计算操作代码
Mar 25 Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
Apr 07 Javascript
Firebug入门指南(Firefox浏览器)
Aug 21 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
Aug 06 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
Jul 10 Javascript
js实现class样式的修改、添加及删除的方法
Jan 20 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
Jan 05 Javascript
jQuery Html控件基本操作(日常收集整理)
Mar 11 Javascript
不得不看之JavaScript构造函数及new运算符
Aug 21 Javascript
解决bootstrap模态框数据缓存的问题方法
Aug 10 Javascript
微信小程序自定义弹窗实现详解(可通用)
Jul 04 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
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二维数组排序方法(array_multisort usort)
2013/12/25 PHP
php中使用sftp教程
2015/03/30 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
jQuery中:gt选择器用法实例
2014/12/29 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
Python排序算法实例代码
2017/08/10 Python
对Python 内建函数和保留字详解
2018/10/15 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
python内打印变量之%和f的实例
2020/02/19 Python
关于Python解包知识点总结
2020/05/05 Python
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
仓库主管的岗位职责
2013/12/04 职场文书
优秀毕业自我鉴定
2014/02/15 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
博士导师推荐信
2015/03/25 职场文书
会议通知
2015/04/15 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
Java中API的使用方法详情
2022/04/06 Java/Android