2016-05-11 62 views

risposta

29

È il nome utilizzato per l'ambito nel repository NPM

http://blog.npmjs.org/post/116936804365/solving-npms-hard-problem-naming-packages

@angular è il nome di ambito e tutti i moduli (core, compiler, common, platform-..., testing, router, ...) sono pubblicato in tale ambito.

  • versioni Angular2 dopo beta.x, e quindi >= Angular2 RC.0 uso @angular

  • Versioni <= Angular2 beta.x uso angular2

Uno dei motivi che hanno cambiato in modo che essi considerati 2 in Angular2 un termine improprio . Attualmente (gennaio 2017) siamo nella versione angolare 4.0.0-beta.1 che dovrebbe chiarire che 2 non ha senso.

10

Dalla pagina angolare Git:

"Tutti i pacchetti sono adesso distribuiti nell'ambito di applicazione NPM @angular> Questo cambia il modo angolare viene installato tramite NPM e come importare il codice.".

E dalle pagine di documentazione NPM:..

"Scopes sono come spazi dei nomi per i moduli NPM Se inizia il nome di un package> con @, allora è un pacchetto di ambito Il campo di applicazione è tutto il resto > la @ e la barra. "

Spero che questo aiuti.

https://github.com/angular/angular/blob/master/CHANGELOG.md

https://docs.npmjs.com/getting-started/scoped-packages

4

L'@ indica che è un pacchetto di NPM privato. Solo il team autorizzato è autorizzato a inviare nuove versioni ma è disponibile pubblicamente per il download. Pubblicandolo come pacchetto npm è possibile utilizzare node come gestore pacchetti per l'applicazione e consentire al nodo di gestire le dipendenze con altri pacchetti e versioni. Molto utile.

1

Prendiamo il caso di import { NgModule } from '@angular/core'; come esempio.
Se si guarda su github source, @angular è solo un nome di cartella. Prendiamo @ angular/core. Dentro c'è l'indice.ts che esporta ulteriormente ./src/core che significa .src/core.ts, dato che l'estensione .ts è assunta. Quando si esegue il comando ./src/core.ts, si scopre che esporta .metadata. Quando entri in ./metadata, troverai ngmodule.ts. All'interno è definito @NgModule!

0

niente di speciale qui, "@" carattere è il modo per differenziare il @angular cartella all'interno node_modules cartella per altri perché è la cartella contiene tutto il modulo che è necessario eseguire angolare sul proprio ambiente