2016-01-07 11 views
14

byłem po Angular2 QuickStart oraz zainstalowanych wymaganych bibliotek korzystających z menedżera pakietów Węzeł: https://angular.io/guide/quickstartJak rozpocząć projekt Angular2 przy minimalnej liczbie wymaganych plików przy użyciu npm?

stworzył 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" 
    } 

wykonany

npm install 

Ale npm zainstalować pobieranie poleceń dużo pliki na przykład "node_modules \ angular2" to 32 MB (prawdopodobnie zawierają surowe źródła i inne pliki?), mimo że wymagają tylko kilku z nich i na przykład ngular2.dev.js jest tylko 1MB:

<!-- 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> 

Chciałbym ten projekt quickstart nie brać tego zbyt wiele miejsca na dysku. Czy istnieje sposób, aby powiedzieć npm, aby pobrać tylko "pakiety" lub wersje zminimalizowane, lub czy istnieje sposób na optymalizację katalogu node_modules podczas pakowania do produkcji?

+0

warto zauważyć, że quickstart instaluje wiele zależności dla funkcjonalnego serwera węzła, który nie może być konieczne, jeśli masz zamiar użyć innej technologii serwerowej. Na przykład nie instalowałbyś maszynopisu ani serwera Lite-Server w środowisku produkcyjnym. Aby szybko rozpocząć projekt i zobaczyć natychmiastowe wyniki, jest idealny. Szybki start nie może pokryć wszystkich możliwych kombinacji stosu serwerów, więc musi zawierać coś podstawowego. Oczywiście nie musisz używać tego, co zawiera. – Claies

Odpowiedz

10

Można użyć wersji CDN tych plików i użyć node_modules w rozwoju i nie obejmują ich produkcji w ogóle:

<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> 

Spójrz na to pytanie i komentarze w odpowiedzi: Angular 2 required libraries

również ten jest najmniejszym package.json można uciec (w zależności w konfiguracji):

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

Używam Webstorma, który uruchamia własny serwer i kompiluje sam skrypt po wykryciu pliku tsconfig.json.

Więc jeśli nie masz własnego serwera, musisz dodać zależność, konfigurację i skrypty dla lite-serwera, a jeśli nie masz kompilatora ts, musisz dodać zależność od maszynopisu i skrypty, a także:

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

0

Możesz usunąć niepotrzebne zależności z package.json. Zależności zadeklarowane w sekcji devDependencies nie są pakowane podczas pakowania do produkcji.

0

można użyć ng new barebones-app --minimal

Powiązane problemy