2013-09-04 3 views
3

Я разрабатываю новое приложение Phonegap 3. Я считаю процесс разработки очень медленным. Каждый раз, когда я хочу, чтобы проверить изменения в мое приложение, я должен работать в консоли:Phonegap 3.0 медленный для сборки

PhoneGap запустить андроид

Эта команда занимает около 30 секунд для запуска! Любая идея о том, как улучшить время проверки каждого изменения?

ответ

1

Если вы разрабатываете для android с помощью ecllipse, вы можете использовать телефон android, подключите его к вашей машине разработки с помощью USB-кабеля и установите необходимые драйверы с here . Драйверы необходимы главным образом для окон в Mac и Linux, как правило, не нужны. После настройки это всего лишь вопрос щелчка в вашей идее.

+0

В eclipse применяется андроид n быстро развертывается. Я говорю более точно о среде телефонных разговоров (Android-гаджет для Android). – poiuytrez

+0

Вы получаете где-нибудь с этим? Сколько файлов у вас есть в папке WWW? Просто интересно, как и мои тоже очень медленные. –

+0

@JamieHutber У меня такая же проблема в проекте Hello World. – poiuytrez

0

Если у вас есть огромное количество файлов (библиотеки с демонстрационными примерами, файлы без миниатюр и т. Д.), Установка в приложении может занять много времени.

Я создал этот крючок (добавлен в before_prepare), который копирует только необходимые файлы (указанные в «requirements.json» в моем проекте).

Чтобы установить зависимость, вам необходимо запустить cd hooks/before_prepare && npm install ncp.

Крючки/before_prepare/010copy_assets.js

#!/usr/bin/env node 

console.log("=== Running copy required assets hook ==="); 

var fs = require('fs'), 
    path = require('path'); 

var mkdirSync = function(path) { 
    try { 
     fs.mkdirSync(path); 
    } catch (e) { 
     if (e.code != 'EEXIST') throw e; 
    } 
} 

var mkdirpSync = function(dirpath) { 
    var parts = dirpath.split(path.sep); 
    for (var i = 1; i <= parts.length; i++) { 
     mkdirSync(path.join.apply(null, parts.slice(0, i))); 
    } 
} 

try { 
    var ncp = require('ncp').ncp 

    var requirements = require('./../../myproject/requirements.json'); 

    ncp.limit = 200; 
    ncp.stopOnErr = true; 

    requirements.forEach(function(requirement) { 

     var source = './myproject/' + requirement; 
     var destination = './www/' + requirement; 

     var folders = destination.split('/'); 
     folders.pop(); 

     mkdirpSync(path.normalize(folders.join('/'))); 

     ncp(source, destination, function(err) { 
      if (err) { 
       console.log('====== Error! Did not copy asset from ' + source + ' to ' + destination + ' ======'); 
       console.error(err); 
       process.exit(1001); 
      } else 
       console.log('====== Copied asset from ' + source + ' to ' + destination + ' ======'); 
     }); 

    }); 

} catch (e) { 
    console.error(e); 
    console.error(e.stack); 
    process.exit(1000); 
} 

пример requirements.json

[ 
    "js", 
    "css", 
    "img", 
    "index.html" 
] 

Обратите внимание, что вы можете перемещать вещи непосредственно в каталог сборки WWW (внутри платформ), но у них разные пути под ios и android

Смежные вопросы