2016-01-07 12 views
14

Stavo seguendo Angular2 QuickStart e librerie necessarie installate utilizzando pacchetti Node Manager: https://angular.io/guide/quickstartCome avviare il progetto Angular2 con il minimo di file richiesti usando npm?

creato un package.json:

{ 
    "name": "angular2-quickstart", 
    "version": "1.0.0", 
    "scripts": { 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" " 
    }, 
    "license": "ISC", 
    "dependencies": { 
    "angular2": "2.0.0-beta.0", 
    "systemjs": "0.19.6", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.0", 
    "zone.js": "0.5.10" 
    }, 
    "devDependencies": { 
    "concurrently": "^1.0.0", 
    "lite-server": "^1.3.1", 
    "typescript": "^1.7.3" 
    } 

Eseguito

npm install 

Ma npm installare comando scarica un sacco di i file per esempio "node_modules \ angular2" sono 32MB (probabilmente fonti raw e altre cose incluse?), anche se l'indice index.html ne richiede solo pochi e ad esempio un ngular2.dev.js è solo 1 MB:

<!-- 1. Load libraries --> 
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script> 
<script src="node_modules/systemjs/dist/system.src.js"></script> 
<script src="node_modules/rxjs/bundles/Rx.js"></script> 
<script src="node_modules/angular2/bundles/angular2.dev.js"></script> 

vorrei che il progetto QuickStart non prende lo spazio su disco. C'è un modo per dire a npm di scaricare solo "bundle" o versioni ridotte al minimo, o c'è un modo per ottimizzare la directory node_modules quando si confeziona per la produzione?

+0

vale la pena notare che l'avvio rapido consente di installare molte dipendenze per un server nodo funzionale, che potrebbe non essere necessario se si intende utilizzare qualche altra tecnologia server. Ad esempio, non installare dattiloscritto o lite-server nel proprio ambiente di produzione. Per iniziare rapidamente un progetto e vedere risultati immediati, è perfetto. Un quickstart non può adeguatamente coprire ogni possibile combinazione di stack del server, quindi deve includere qualcosa di base. Non è necessario utilizzare ciò che include, ovviamente. – Claies

risposta

10

È possibile utilizzare le versioni CDN di tali file e utilizzare node_modules in fase di sviluppo e non includerli nella produzione a tutti:

<script src="https://rawgithub.com/systemjs/systemjs/0.19.6/dist/system.js"></script> 
<script src="https://code.angularjs.org/2.0.0-beta.0/angular2-polyfills.js"></script> 
<script src="https://code.angularjs.org/2.0.0-beta.0/Rx.js"></script> 
<script src="https://code.angularjs.org/2.0.0-beta.0/angular2.dev.js"></script> 

Date un'occhiata a questa domanda e le osservazioni nelle risposte: Angular 2 required libraries

anche questa è la più piccola package.json si può farla franca (a seconda della vostra configurazione):

{ "dependencies": { "angular2": "2.0.0-beta.0", "systemjs": "0.19.6" } }

Sto usando Webstorm che avvia il proprio server e compila dattiloscritto da solo quando rileva il file tsconfig.json.

Quindi, se non si dispone di un proprio server, è necessario aggiungere la dipendenza da lite-server, la configurazione e gli script e, se non si dispone di un compilatore ts, è necessario aggiungere la dipendenza da dattiloscritto e script così:

"devDependencies": { "typescript": "^1.7.3" },

0

È possibile rimuovere le dipendenze non necessarie da package.json. Inoltre, le dipendenze dichiarate nella sezione devDependencies non sono raggruppate durante il confezionamento per la produzione.

0

si potrebbe usare ng new barebones-app --minimal

Problemi correlati