Istnieje kilka plików JavaScript, organizowane w folderach scripts/folder1 scripts/folderze folder2 ...Ścieżki względne wykorzystujące requirejs w połączeniu z maszynopis i AMD
Z requirejs.config.baseUrl folder jest zdefiniowany jako domyślny , na przykład Skrypty/folder1. Następnie w requirejs.config.path niektóre pliki są adresowane tylko nazwą pliku, a niektóre są adresowane względną ścieżką (jak ../folder2/blabla).
Podczas kodowania pliku Typescipt folder2/blabla.ts potrzebujemy modułu "matematyka" z folderu1. Tak więc piszemy:
import MOD1 = module("../folder1/math");
Wszystko jest w porządku z tym wszystkim. Może znaleźć moduł. Jednak w przypadku requirejs występuje problem. Nie zna modułu "../folder1/math", zna tylko "matematykę".
Problem polega na tym, że instrukcja importu oczekuje nazwy pliku, adresowanej do wyjścia z bieżącego katalogu. Jednak nie jest to identyfikator modułu, o którym informuje program requirejs.
Używanie bezwzględnych ścieżek w dowolnym miejscu, zarówno w konfiguracji requirejs, jak i w instrukcji importu w Maszynopisie, rozwiązuje problem.
Czy robię to źle? Czy też absolutne ścieżki są drogą do zrobienia?
Znalazłem że albo bezwzględne ścieżki lub ścieżki względne do pierwszego modułu, które wymagają js ładuje (zazwyczaj katalog główny mojej aplikacji js - folder Scripts lub folder Durandal w aplikacji - ale niekoniecznie jest to katalog główny mojej witryny). – JcFx
Wielkie dzięki za odpowiedź. Jeśli pierwszy moduł znajduje się w/Scripts, baseUrl zostanie ustawione na tę ścieżkę. Następnie, jeśli używany jest moduł z "folderu1", w przypadku requirejs należy go adresować jak "folder1/blabla". Co wtedy napiszesz w instrukcji Typescript? Czy piszesz moduł ("folder1/blabla")? Co się stanie, jeśli moduł, w którym zapisano instrukcję importu, zostanie zapisany w "folderze2"? Czy Maszynopis następnie akceptuje moduł ("folder1/blabla")? – mgs
Tak. O ile widzę, ścieżka nie zmienia się, gdziekolwiek się importujesz (o ile nadal jesteś w tym samym kontekście aplikacji - tak samo w łańcuchu modułów załadowanych z tego początkowego adresu bazowego). – JcFx