RE: Angular2 2.0.0, angular-cli v1.0.0-beta.11-webpack.8
Jak nakazać angular-cli dołączenie pliku z „src / asset” w katalogu głównym „dist” podczas kompilacji?
Wdrażamy na hoście z systemem Windows i musimy dołączyć plik „web.config”, aby poinformować usługi IIS o skierowaniu wszystkiego do indeksu. Robiliśmy to przed RC4, ale przy wszystkich aktualizacjach wypadło przez pęknięcia (nie pamiętam, jak to zrobiliśmy).
Byłem czyszczenie docs GitHub repo i nie znalazłem niczego stosowania w odniesieniu do tego tematu. Może jestem w złym miejscu?
W ToC znajduje się punkt „Dodawanie dodatkowych plików do kompilacji”, ale wygląda na to, że sekcja nie istnieje.
angular
angular-cli
Kizmar
źródło
źródło
"copy:webConfig": "node node_modules/copy/bin/cli.js web.config dist"
. Dodałem też poczta skrypt kompilacji:"postbuild": "npm run copy:webConfig"
. Wystąpiły inne problemy podczas próby uruchomienia kopii, ale to załatwiło sprawę.Odpowiedzi:
Właściwość „asset” pliku angular-cli.json można skonfigurować tak, aby zawierała pliki niestandardowe w kompilacji angular-cli webpack. Skonfiguruj więc wartość właściwości „asset” jako tablicę. Na przykład:
powyższa konfiguracja skopiuje config.jsn i .htaccess do folderu dist podczas budowania angular-cli webpack. powyższe ustawienie działało w wersji angular-cli 1.0.0-beta.18
źródło
Obecna poprawna odpowiedź:
Zespół dodał obsługę kopiowania określonych plików bez
dist
zmian do folderu wyjściowego ( domyślnie) w późniejszej wersji Angular CLI (byłaby to wersja beta 17 lub 19 - od wieków była w końcowych wersjach 1.x).Po prostu dodajesz go do tablicy w następujący sposób
angular-cli.json
:(Zwróć uwagę, że ścieżka jest względna do
src
folderu)Osobiście go używam i działa dobrze.
Jak beta 24, I dodaje funkcję kątowym CLI, który sprawia, że wszystkieassets
pliki i foldery serwowane są z serwera dev WebPACK podczas pracyng test
nie tylkong serve
.Obsługuje również obsługę plików zasobów na serwerze deweloperskim pakietu webpack używanego do testów jednostkowych (
ng test
).(w przypadku, gdy potrzebujesz plików JSON do testów lub po prostu nie chcesz widzieć ostrzeżeń 404 w konsoli).
Są już obsługiwane,
ng e2e
ponieważ działa pełneng serve
.Ma również bardziej zaawansowane funkcje, takie jak filtrowanie plików, które chcesz z folderu, i nadanie nazwy folderu wyjściowego innej niż folder źródłowy:
Możesz również zapoznać się z oficjalną dokumentacją: Angular Guide - Workspace configuration .
.
[TYLKO DO ARCHIWIZACJI] Oryginalna odpowiedź (6 października 2016 r.):
Niestety obecnie nie jest to obsługiwane (od wersji beta-16). Podałem dokładną troskę zespołowi (pliki web.config), ale wydaje się, że nie nastąpi to w najbliższym czasie (chyba że rozwidlasz CLI itp.).
Śledź to wydanie, aby uzyskać pełną dyskusję i możliwe szczegóły na przyszłość.
PSW przypadku pliku JSON możesz go umieścić w
./src/assets/
. Ten folder zostanie skopiowany bez zmian./dist/assets/
. To jest obecne zachowanie.Wcześniej w czasach systemJS istniał inny
./public/
folder, do którego kopiowano./dist/
bezpośrednio, ale zniknął on w wersjach Webpack, o którym mowa powyżej.źródło
Jednym z rozwiązań (chociaż moim zdaniem jest to trochę hack) jest zadeklarowanie zmiennej w
main.ts
pliku, która wymaga dodatkowego pliku, który chcesz dołączyć do wyniku kompilacji pakietu internetowego.DAWNY:
Gdy pakiet webpack napotka tę instrukcję deklaracji zmiennej
main.ts
, wyemitujeweb.config
plik raw jako część wyniku kompilacji:Idealnym rozwiązaniem byłaby konfiguracja
angular-cli.json
pakietu webpacka , ale nie potrafię jeszcze zrozumieć, jak Angular- CLI sobie z tym radzi (beta.16).Więc jeśli ktoś ma lepszą odpowiedź, która rozszerza konfigurację pakietu WebPack dla projektu generowanego przez angular-cli, chciałbym to usłyszeć.
źródło
Dla czytelników Angular 8 ,
.htaccess
musi byćsrc/.htaccess
. Zobacz poniżejUpewnij się, że umieściłeś
.htaccess
plik wsrc
katalogu projektu.(Jeśli potrzebujesz prawidłowego
htaccess
pliku, możesz go znaleźć tutaj - https://stackoverflow.com/a/57126352/767625 )Otóż to. Powinno to teraz zostać skopiowane po trafieniu
ng build --prod=true
.Mam nadzieję, że to komuś pomoże.
Twoje zdrowie,
źródło
angular.json
, nie jestangular-cli.json
wymieniony we wcześniejszych odpowiedziach.W pliku angular-cli.json znajduje się sekcja „scripts”. Możesz tam dodać wszystkie pliki javascript innych firm.
źródło
W moim przypadku użyłem wersji Angulara 5 , więc próbowałem utworzyć plik o nazwie Staticfile.txt podczas uruchamiania polecenia ng build --prod. upewnij się, że podano rozszerzenie pliku, w przeciwnym razie plik nie zostanie utworzony.
źródło
Zmodyfikuj angular.json.
Dodaj wpis do tablicy zasobów:
źródło