다트

2014-09-28 4 views
1

에 목적을 액세스 스크립트의 경로를 얻기과 같이 스크립트로 필요에 따라 가져올 수있는 서버 측 다트 응용 프로그램에 대한 설정 파일을 만드는 것입니다 :이 설정에 중요한 무엇다트

import 'Config/config.dart'; 

그러나 스크립트는 가져 오기 (액세스하는 파일의 위치 아님)로 액세스 할 때 자신의 위치임을 알고 있다는 것입니다. 현재는 경로를 찾을 수 아래 줄을 사용

final String ROOT_DIR = dirname(Platform.script.toFilePath()); 

그러나,이 파일 파일의 경로를 수입하지 가져 오는 파일을 반환합니다. 이 때문에 같은 다른 절대 경로는 (예 : 경로, 컨트롤러, 사물 등) 설정 파일에 알려질 수 있습니다 루트 폴더에 상대 경로를 작업을위한 순수 알려진해야 :

final String PUBLIC_DIR = join(ROOT_DIR, 'Public'); 
final String VIEWS_DIR = join(ROOT_DIR, 'Views'); 

이것을 접근하는 가장 좋은 방법은 무엇입니까? 이 게시물을 보았습니다 : Get script path in Dart (analog __DIR__ constant in PHP) 같은 종류의 상황이지만 경로 폴더를 찾기 위해 상대 경로를 사용하는 깨끗한 방법을 볼 수 없습니다.

아마 정말 눈에 띄는 것이 누락되었지만 지금은 볼 수 없습니다. 어떤 도움이라도 대단히 감사 할 것입니다, 독서에 감사드립니다.

답변

1

이것은 Dart에서 지원되지 않습니다. 메조니 (Mezoni)가이 정보를 얻기 위해 어떤 종류의 트릭을 발견했을 수도 있습니다. caller_info 패키지 https://stackoverflow.com/a/24880092/217408.

개발 중에 파일이 저장된 경로는 신뢰할 수 없습니다.
현재는 실험적이지만 코드에 dart2dart을 실행하면 코드의 전체 또는 일부가 인라인됩니다.

+0

아아, 그렇다면 축소 된 트리가 어디에 있는지 알지 못할 것입니다. 나는 이것을 답으로 표시 하겠지만 액세스 bash 파일을 다트 수 없으며이 정보를 얻을 수 없습니까? 아니면 다트 응용 프로그램이 하나의 파일로 컴파일된다는 말입니까? (이 글을 읽는 것으로 기대되는 것은 https://code.google.com/p/dart/issues/detail?id=20090입니다.) 답변 주셔서 감사합니다. – willsquire

+0

pub 빌드 (dart2js/dart2dart)를 실행하면 코드가 하나의 파일로 끝날 수 있습니다. 트랜스포머는 코드를 제거하고 새로 생성 된 코드를 삽입 할 수 있습니다. 스크립트 파일은 임시 URI에서로드 할 수 있습니다. ... 다트는 초기 스크립트 파일 ('main() '포함)에 대한 경로 만 제공합니다. –

관련 문제