web-dev-qa-db-fra.com

Comment démarrer un projet Angular2 avec le minimum de fichiers requis avec npm?

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? 

14
Andris Krauze

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" },

10
Langley

Vous pouvez utiliser ng new barebones-app --minimal

0
ttugates

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.

0
TheKojuEffect