教你用Cordova打包Vue項(xiàng)目的方法
現(xiàn)在國內(nèi)越來越多的開發(fā)者使用Vue開發(fā)混合app,但是當(dāng)大家開發(fā)完成過后才發(fā)現(xiàn)不知道該怎么將Vue項(xiàng)目打包成app。
據(jù)我現(xiàn)在的了解打包Vue項(xiàng)目目前流行的就是使用weex和cordova。weex是阿里提供并且Vue的作者也極力推薦的,有興趣的可以去學(xué)習(xí)使用一下。因?yàn)槲冶旧硎亲鯽ngular+ionic的,所以比較青睞cordova,下面我就教大家怎么使用cordova打包Vue項(xiàng)目:
第一步:安裝cordova
如果已經(jīng)安裝則直接跳過,否則執(zhí)行以下命令:
npm install -g cordova
如果這個(gè)命令都不會運(yùn)行,那我建議你不要繼續(xù)往下看了。
第二步:新建cordova項(xiàng)目
執(zhí)行命令
cordova create cordovaApp com.cordova.testapp cd cordovaApp cordova platform add android
到這里我們的cordova項(xiàng)目就創(chuàng)建好了。
第三步:修改vue項(xiàng)目
如果你沒有vue項(xiàng)目的話,自行百度去新建一個(gè)vue項(xiàng)目吧。
首先修改vue項(xiàng)目的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:;">
這個(gè)的時(shí)候可能導(dǎo)致頁面樣式改變,如果改變則不加,否則還是建議加上。
然后引入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: '',
然后運(yùn)行
npm run dev
看看是否能夠運(yùn)行起來,如果正常說明到這里是沒有問題的。
第四步:將vue文件放到cordova項(xiàng)目中并打包
先在vue項(xiàng)目中運(yùn)行
npm run build
執(zhí)行完成后會生成一個(gè)dist文件夾,找到這個(gè)文件夾將里面的所有文件復(fù)制到你的cordova項(xiàng)目的www文件夾下替換它原有的文件。
然后就可以執(zhí)行
cordova build android
會生成一個(gè)可執(zhí)行的apk文件,安裝即可。
到這里就完成了我們vue項(xiàng)目的打包。
友情提示:
如果vue項(xiàng)目在運(yùn)行npm run dev或者npm run build的時(shí)候遇到問題一般不是代碼出錯(cuò)的話可以將node_modules文件夾刪除使用npm install安裝。
如果是因?yàn)閑slint導(dǎo)致代碼檢查不通過的話,可以將Vue項(xiàng)目的build文件夾下的webpack.base.config文件中的rules
{ test: /\.(js|vue)$/, loader: 'eslint-loader', enforce: 'pre', include: [resolve('src'), resolve('test')], options: { formatter: require('eslint-friendly-formatter') } },
這段代碼注釋即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)內(nèi)容可滾動的彈窗效果
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)內(nèi)容可滾動的彈窗效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09element ui里dialog關(guān)閉后清除驗(yàn)證條件方法
下面小編就為大家分享一篇element ui里dialog關(guān)閉后清除驗(yàn)證條件方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02分享一個(gè)精簡的vue.js 圖片lazyload插件實(shí)例
本篇文章主要介紹了分享一個(gè)精簡的vue.js 圖片lazyload插件實(shí)例。非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-03-03vue 綁定對象,數(shù)組之?dāng)?shù)據(jù)無法動態(tài)渲染案例詳解
這篇文章主要介紹了vue 綁定對象,數(shù)組之?dāng)?shù)據(jù)無法動態(tài)渲染案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09vue3如何定義變量及ref、reactive、toRefs特性說明
這篇文章主要介紹了vue3如何定義變量及ref、reactive、toRefs特性說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06實(shí)現(xiàn)vuex與組件data之間的數(shù)據(jù)同步更新方式
今天小編就為大家分享一篇實(shí)現(xiàn)vuex與組件data之間的數(shù)據(jù)同步更新方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11