Как настроить импорт для проекта дартс / полимер (в целом и для BWU-datagrid)
Я пробовал примеры из Learning Dart, сайта Dart, Up and Running, и я не могу заставить это работать. Я прочитал и попробовал все, что я знаю, и я все еще не понимаю импорт дротиков.
Я просто пытаюсь настроить свой собственный bwu_datagrid и считаю, что импорт невозможен, потому что, когда я делаю то, что предлагается, или запускаю точный код, скажем, из примеров Learning Dart, и он не работает.
Так может кто-нибудь объяснить мне, подробно, что мне нужно сделать, чтобы сделать проект дартс, где bwu_datagrid отображается на экране без ошибок.
структура моего проекта:
- / корень
- / пакеты
- / bwu_datagrid
- / полимер,
- ... другие пакеты
- / Lib
- / SRC
- some_part.dart
- some_library.dart
- / SRC
- / веб
- index.html
- / пакеты
1 ответ
Существуют разные виды импорта:
import 'dart:blah';
Импорт из Dart SDK, например.dart:html
import 'package:blah/something.dart';
Импортирует из пакета, который вы включили через Pub (в вашемpubspec.yaml
), который будет отображаться как символическая ссылка внутри вашегоpackages
папки (которые становятся символическими в нескольких местах, напримерbin\packages
а такжеweb\packages
import 'path/file.dart';
Импортирует файл из файловой системы, используя относительный путь
Сначала меня смутило то, что если вы хотите импортировать что-то из вашего собственного проекта без указания пути относительно места расположения включаемого файла, вы можете импортировать его, используя package:
префикс и название вашего собственного проекта. Это работает, потому что Pub создает символическую ссылку для вашего собственного проекта в папке пакетов.
Например.:
my_project\web\packages\my_project
символическая ссылка назад my_project\lib
так что вы можете сделать:
import 'package:my_project/my_stuff.dart';
Итак, чтобы импортировать что-то из bwu_datagrid
, который является пакетом паба, вам нужно сделать:
import 'package:bwu_datagrid/somefile.dart';
Вам нужно заменить somefile.dart
с правильным файлом, который вам нужно включить, так как вы не импортируете "пакеты" напрямую; а точнее файлы из них.