2013-09-04 4 views
3

새로운 Phonegap 3 응용 프로그램을 개발 중입니다. 나는 개발 과정이 매우 느리다는 것을 안다. 내 응용 프로그램에 변화를 테스트 할 때마다, 나는 콘솔에서 실행해야합니다 :Phonegap 3.0 빌드가 느리다

이 명령을 실행하는 데 약 30 초가 걸립니다 안드로이드

폰갭 실행! 각 변경 사항을 테스트하는 시간을 개선하는 방법에 대한 아이디어가 있습니까?

답변

1

ecllipse를 사용하여 android 용으로 개발할 경우에는 Android 핸드셋을 사용하여 개발 컴퓨터와 USB 케이블로 연결하고 here 에서 필요한 드라이버를 설치하십시오. 드라이버는 대개 Mac 및 Linux의 Windows에 필요합니다. 일반적으로 필요하지 않습니다. 설정 한 후에는 ide에서 실행을 클릭하기 만하면됩니다.

+0

이클립스에서, 안드로이드 응용 프로그램 n은 신속하게 배포 할 수 있습니다. 나는 phonegap 환경 (phonegap run android)에 대해 더 정확하게 말하고있다. – poiuytrez

+0

어디서나 얻을 수 있습니까? WWW'www' 폴더에 몇 개의 파일이 있습니까? 광산이 매우 느린 것만으로도 궁금해합니다. –

+0

@JamieHutber 안녕하세요 세계 프로젝트에서 같은 문제가 있습니다. – poiuytrez

0

엄청난 양의 파일 (데모 또는 비 압축 파일 등)이있는 경우 앱을 설치하는 데 오랜 시간이 걸릴 수 있습니다.

나는 (프로젝트에 "requirements.json"에 지정된) 필요한 파일 만 복사하는이 후크 (before_prepare에 추가됨)를 만들었습니다.

종속성을 설치하려면 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); 
} 

예를 들어 당신이 (플랫폼 내에서) 빌드 www 디렉토리에 직접 물건을 이동할 수 있습니다

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

주 requirements.json하지만, 그들은 이도와 안드로이드에서 다른 경로를 가지고있다

관련 문제