2013-07-08 39 views
0

我有一個簡單的飛鏢項目,它的文件結構,如:爲什麼我不能在dir內運行dart文件?

darttest tree 
. 
├── packages 
│   ├── browser -> /Users/freewind/.pub-cache/hosted/pub.dartlang.org/browser-0.5.20/lib 
│   ├── meta -> /Users/freewind/.pub-cache/hosted/pub.dartlang.org/meta-0.5.20/lib 
│   ├── start -> /Users/freewind/.pub-cache/hosted/pub.dartlang.org/start-0.0.8/lib 
│   └── unittest -> /Users/freewind/.pub-cache/hosted/pub.dartlang.org/unittest-0.5.20/lib 
├── pubspec.lock 
├── pubspec.yaml 
└── src 
    └── server.dart 

它使用的庫start,並且是非常簡單的。

pubspec.yaml

name: darttest 
dependencies: 
    start: any 

的src/server.dart

import 'package:start/start.dart'; 

void main() { 
    start(public: 'web', port: 3000).then((Server app) { 
    app.get('/').listen((request) { 
     request.response 
     .header('Content-Type', 'text/html; charset=UTF-8') 
     .send('Hello, dart'); 
    }); 
    }); 
} 

當我darttest目錄,然後運行:

➜ darttest dart src/server.dart 
Unable to open file: 
/Users/freewind/dev/workspace/darttest/src/packages/start/start.dart 
'file:///Users/freewind/dev/workspace/darttest/src/server.dart': Error: line 1 pos 1: 
library handler failed 
import 'package:start/start.dart'; 
^ 

它試圖從darttest/src/packages/start/start.dart找到start,但實際上沒有這樣的文件,start位於darttest/packages的內部。

我是否必須將server.dart置於項目的根部?這有什麼規定嗎?或者如何解決這個錯誤?

+0

你使用Dart Editor嗎?您遺漏了/ package /文件夾的目錄鏈接。您可以通過在pubspec.yaml文件(上下文菜單)上運行「Pub Install」來創建它們。 – Fox32

回答

2

編輯
pub install更名爲pub getpub install仍然可作爲pub get無證別名)
編輯

pub install通過創建額外的packages 目錄鏈接到解決這個問題主要的packages目錄在 的根目錄下。它假定你的包是根據 package layout guide佈局,並創建一個鏈接packages目錄bin/test/example/,以及它們的子目錄

飛鏢編輯

如果你是使用Dart Editor可以自動創建一個到主包文件夾的目錄鏈接。

選擇您需要的文件pubspec.yaml在文件視圖從上下文菜單酒吧安裝」。

命令行

如果你想創建命令行的目錄,你可以使用pub install命令。您需要在pubspec.yaml文件的目錄中運行它。

PS:查看Dart包的Package layout conventions。他們建議將bin文件夾用於獨立Dart應用程序。

+0

謝謝,我沒有使用Dart Editor,而是使用Dart SDK的命令行。我是否必須手動在'src'內創建鏈接?我可以運行一些pub命令來執行此操作嗎? – Freewind

+0

命令行相當於'pub install',請參閱http://pub.dartlang.org/doc/#installing-dependencies和http://pub.dartlang.org/doc/pub-install.html – Fox32

+0

我是不確定將'server.dart'放到'bin'是否是個好主意,因爲它有很多邏輯。它不是一個庫,把它放在'lib'裏面是不合適的。我不知道該把它放在哪裏:( – Freewind

相關問題