0

私は単純な 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 dir で実行すると:

➜  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';
^

startfromを見つけようとしますがdarttest/src/packages/start/start.dart、実際にはそのようなファイルはありませstartdarttest/packages

server.dartプロジェクトのルート内に配置する必要がありますか? これには規則がありますか?または、このエラーを修正する方法は?

4

1 に答える 1

2

EDIT
pub installは に名前が変更されましたpub get(pub installの文書化されていないエイリアスとして引き続き使用できますpub get)
EDIT

pub installは、パッケージのルートにpackages あるメイン ディレクトリにリンクする追加のディレクトリを作成することで、この問題を解決します。パッケージ レイアウト ガイドpackagesに従ってパッケージがレイアウトされていると想定し 、 、 、およびにリンクされたディレクトリとそのサブディレクトリを作成します。packagesbin/test/example/

ダーツエディター

Dart エディターを使用している場合は、メイン パッケージ フォルダーへのディレクトリ リンクを自動的に作成できます。

[ファイル] ビューのファイルのコンテキスト メニューから[Pub Install ]を選択する必要があります。pubspec.yaml

コマンドライン

コマンドラインからディレクトリを作成する場合は、コマンドを使用できますpub install。ファイルのディレクトリで実行する必要がありpubspec.yamlます。

PS: Dart パッケージのパッケージ レイアウト規則をご覧ください。binスタンドアロンの Dart アプリケーションにはこのフォルダーを使用することをお勧めします。

于 2013-07-08T13:56:38.010 に答える