第一步:安裝cordova 如果已經安裝則直接跳過,否則執行以下命令:
npm install -g cordova
如果這個命令都不會運行,那我建議你不要繼續往下看了。 第二步:建立cordova項目
執行命令
cordova create cordovaApp com.cordova.testappcd cordovaAppcordova 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') } },
這段代碼注釋即可。
作者:待花謝花開
連結:http://www.jianshu.com/p/25d797b983cd
來源:簡書