Je suivais Angular2 quickstart et installais les bibliothèques requises à l'aide du gestionnaire de paquets Node: https://angular.io/guide/quickstart
créé 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"
}
Réalisé
npm install
Mais la commande npm install télécharge un grand nombre de fichiers, par exemple, "node_modules\angular2" fait 32 Mo (probablement des sources brutes et d’autres éléments inclus?). seulement 1 Mo:
<!-- 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>
J'aimerais que le projet quickstart ne prenne pas autant d'espace disque .. Y a-t-il un moyen de dire à npm de ne télécharger que des "bundles" ou des versions réduites, ou existe-t-il un moyen d'optimiser le répertoire node_modules lors du conditionnement pour la production?
Vous pouvez utiliser les versions cdn de ces fichiers et utiliser node_modules en développement sans les inclure dans la production:
<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>
Regardez cette question et les commentaires dans les réponses: Angular 2 bibliothèques requises
De plus, c’est le plus petit package.json que vous pouvez utiliser (en fonction de votre configuration):
{
"dependencies": {
"angular2": "2.0.0-beta.0",
"systemjs": "0.19.6"
}
}
J'utilise Webstorm qui démarre son propre serveur et compile TypeScript lorsqu'il détecte le fichier tsconfig.json.
Donc, si vous n'avez pas votre propre serveur, vous devrez ajouter la dépendance, les fichiers de configuration et les scripts du serveur léger. Si vous n'avez pas de compilateur ts, vous devrez également ajouter la dépendance et les scripts TypeScript:
"devDependencies": {
"TypeScript": "^1.7.3"
},
Vous pouvez utiliser ng new barebones-app --minimal
Vous pouvez supprimer les dépendances inutiles de package.json
. De même, les dépendances déclarées dans la section devDependencies
ne sont pas groupées lors de la compression.