教你用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 相关文章推荐
javascript下判断一个元素是否存在的代码
Mar 05 Javascript
Date对象格式化函数代码
Jul 17 Javascript
jquery 元素相对定位代码
Oct 15 Javascript
在Python中使用glob模块查找文件路径的方法
Jun 17 Javascript
jquery实现图片预加载
Dec 25 Javascript
JS中this上下文对象使用方式
Oct 09 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
简单理解js的冒泡排序
Dec 19 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
浅谈Vue.js
Mar 02 Javascript
使用 jQuery 实现表单验证功能
Jul 05 jQuery
用jQuery实现抽奖程序
Apr 12 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
smarty实例教程
2006/11/19 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
jQuery 使用手册(二)
2009/09/23 Javascript
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
详解基于webpack2.x的vue2.x的多页面站点
2017/08/21 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
python reverse反转部分数组的实例
2018/12/13 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
python多进程使用函数封装实例
2020/05/02 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
三好学生演讲稿范文
2014/04/26 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
公司市场部岗位职责
2015/04/15 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers