이 스크립트는 예를 들어 how to call a polymer webapp directly via 'Process' in a dart file
으로 시도 할 수 있습니다.
이 예제에는 기본 브라우저가 포함되어 있습니다.
import "dart:async";
import "dart:io";
import "package:path/path.dart" as pathos;
void main(List<String> args) {
String app;
String file;
switch (args.length) {
case 1:
app = args[0];
break;
case 2:
app = args[0];
file = args[1];
break;
default:
print("Usage: pubserve.dart app_path [file_name]");
exit(0);
}
if(!new Directory(app).existsSync()) {
print("Directory not exists: $app");
exit(-1);
}
pubServe(app, file).then((exitCode) {
exit(exitCode);
});
}
Future<int> pubServe(String app, String file) {
var sdk = Platform.environment["DART_SDK"];
if (sdk == null) {
print("Dart SDK not found");
return new Future(() => -1);
}
var executable = pathos.join(sdk, "bin", "pub");
var pattern = r"^Serving (?:.*) web on (.*)$";
var regexp = new RegExp(pattern);
return Process.start(executable, ["serve"], runInShell: true,
workingDirectory: app).then((process) {
process.stdout.listen((data) {
var string = new String.fromCharCodes(data);
for (var c in data) {
stdout.writeCharCode(c);
}
var match = regexp.matchAsPrefix(string);
if (match != null) {
var url = match.group(1);
if (file != null) {
url += "/$file";
}
Timer.run(() => runBrowser(url));
}
});
process.stderr.pipe(stderr);
stdin.pipe(process.stdin);
return process.exitCode.then((exitCode) {
return exitCode;
});
});
}
void runBrowser(String url) {
var fail = false;
switch (Platform.operatingSystem) {
case "linux":
Process.run("x-www-browser", [url]);
break;
case "macos":
Process.run("open", [url]);
break;
case "windows":
Process.run("explorer", [url]);
break;
default:
fail = true;
break;
}
if (!fail) {
//print("Start browsing...");
}
}
P.
참고 : 다트 편집기에서이 스크립트를 실행하면 당신은 다트 편집기에서 현재 스크립트를 중지 할 때
, 편집기 (우리의 경우 pub serve
) 서브 프로세스의 실행을 중지하지 않습니다.
이것은이 스크립트에만 관련이 없습니다. 편집자는 항상 하위 프로세스를 활성 상태로 유지합니다.
cmd-line에서 실행하면 pub serve
이 올바르게 종료됩니다.
코드 제트를 사용하지 않았으므로 기본 브라우저를 사용하기 때문에이 예제는 "Run in Dartium"또는 "JavaScript로 실행"입니다. 어디서 어떻게 지정하겠습니까? –
@ H.R. pub serve를 통한'launch polymer web app'를위한 커맨드 라인 스크립트입니다. 그것은 어떤 디렉토리에서든'polymer web app'를 시작하기위한 전역 스크립트로 사용될 수 있습니다. 예 (Windows 사용자) :'% DART_SDK % \ bin \ dart pubserve.dart c : \ users \ user \ dart \ polymer_app01 polymer_app01.html'. 또한 자신의 웹 응용 프로그램 실행기 (명령 줄)에 포함시킬 수 있습니다. – mezoni
js 코드를 생성한다는 의미입니까? 또는 다트 코드로 작업하십시오. 달리기에서는 dartium이 아닌 탐색기를 사용하기 때문입니다.또는 선술집은 둘 다 봉사하기 위하여 마술을 봉사합니까? 그렇게 생각하지 않았다. –