現(xiàn)在國內(nèi)越來越多的開發(fā)者使用Vue開發(fā)混合app,但是當大家開發(fā)完成過后才發(fā)現(xiàn)不知道該怎么將Vue項目打包成app。
據(jù)我現(xiàn)在的了解打包Vue項目目前流行的就是使用weex和cordova。weex是阿里提供并且Vue的作者也極力推薦的,有興趣的可以去學習使用一下。因為我本身是做angular+ionic的,所以比較青睞cordova,下面我就教大家怎么使用cordova打包Vue項目:
創(chuàng)新互聯(lián)建站是一家專業(yè)提供東山企業(yè)網(wǎng)站建設,專注與網(wǎng)站設計制作、成都網(wǎng)站建設、H5場景定制、小程序制作等業(yè)務。10年已為東山眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設計公司優(yōu)惠進行中。
第一步:安裝cordova
如果已經(jīng)安裝則直接跳過,否則執(zhí)行以下命令:
npm install -g cordova
如果這個命令都不會運行,那我建議你不要繼續(xù)往下看了。
第二步:新建cordova項目
執(zhí)行命令
cordova create cordovaApp com.cordova.testapp cd cordovaApp cordova platform add android
到這里我們的cordova項目就創(chuàng)建好了。
第三步:修改vue項目
如果你沒有vue項目的話,自行百度去新建一個vue項目吧。
首先修改vue項目的index.html
在head之間加入
這里注意加入這個的時候可能導致頁面樣式改變,如果改變則不加,否則還是建議加上。
然后引入cordova.js
然后修改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: '', 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
執(zhí)行完成后會生成一個dist文件夾,找到這個文件夾將里面的所有文件復制到你的cordova項目的www文件夾下替換它原有的文件。
然后就可以執(zhí)行
cordova build android
會生成一個可執(zhí)行的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') } },
這段代碼注釋即可。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。