Avevo una semplice app Angular2 "hello world". Ho anche preso la decisione apparentemente irragionevole di lavorare con diverse strutture di directory tra il mio progetto di sviluppo e la cartella di distribuzione finale sul mio backend di primavera.Importazione Angular2 e TypeScript di node_modules
causa di questa differenza, ho avuto un problema con le importazioni dattiloscritto, e questa linea ha finito per produrre errori 404 (non in grado di trovare la libreria/angular2/core) quando ho cercato di aprire l'applicazione effettiva nel browser:
import {Component, View} from 'angular2/core';
Quindi per farla breve, ho finito per l'aggiunta di nuovo la cartella/app per far funzionare tutto, ma ho finito per modificare le mie istruzioni import come segue:
import {Component, View} from '../node_modules/angular2/core';
Questo, tuttavia, si è rivelata causa qualche strano comportamento Per qualche ragione specifica ../node_modules
nei percorsi della biblioteca è la causa del JS per caricare effettivamente i file ALL Angular2 da zero utilizzando chiamate AJAX per recuperare ogni singolo file dalla cartella npm_modules/angular2/
anche se questo era parte del mio header HTML:
<script src="/node_modules/angular2/bundles/angular2.dev.js"></script>
Quando ho finalmente capito quello che sta succedendo sono ritornato l'istruzione import di nuovo a
import {Component, View} from 'angular2/core';
e tutto ha funzionato. Angular2 ora era completamente caricato dal tag script sopra e non c'erano file che venivano caricati da chiamate AJAX extra.
Qualcuno può spiegare per favore che cosa sta causando questo? Presumo che sia un comportamento normale, ma non capisco come funziona l'importazione e perché specificare un percorso più dettagliato fa una tale differenza.
Per ulteriori dettagli sull'importazione di moduli in un mondo TS: https://www.typescriptlang.org/docs/handbook/module-resolution.html I documenti sono fatti bene per questo. Veramente. – rashadb