Ai-je besoin de nœud.js pour utiliser Angularjs?

je voudrais utiliser angular.js pour mon outil D'édition D'Image sur mon site web. Ai-je besoin de node.js aussi?

je ne comprends pas le scénario. Si je n'ai pas besoin de celui-là, quand nodejs et angularjs seront ensemble?

60
demandé sur Paolo Forgia 2014-10-16 11:26:44

6 réponses

vous n'avez pas besoin de NodeJS pour créer un outil d'édition d'image côté client.

AngularJS est un cadre d'application web, maintenu par Google et la communauté, qui aide à créer des applications d'une page, qui se composent d'une page HTML avec CSS et JavaScript du côté du client.

mais si un jour vous voulez télécharger et stocker ces images sur un serveur et les rendre accessibles par plusieurs clients - alors oui, vous aurez également besoin d'un serveur. Ce serveur peut être fait avec NodeJS.

50
répondu Catalin MUNTEANU 2018-01-29 10:39:24

je ressens votre douleur.

pour quelqu'un de nouveau au développement angulaire 2, je peux ressentir la douleur d'avoir à apprendre technologies côté serveur pour quelque chose qui est essentiellement un technologie côté client . De ce que je comprends:

  1. node.js n'est utilisé que pour gérer les dépendances d'une application angulaire 2. Si vous pouvez arriver à obtenir ces dépendances sans en utilisant node.js , npm ou jspm alors vous pouvez exécuter et développer votre application hors ligne. Cependant, le faire manuellement prendra un temps inexorable puisque vous devez télécharger des fichiers manuellement qui peuvent avoir d'autres dépendances qui nécessiteront que d'autres fichiers soient à nouveau téléchargés (Oui j'y suis allé). node.js ou npm ou jspm automatise ce processus ainsi que de prendre toutes les mesures nécessaires de configuration les fichiers ( jspm ), de sorte que chaque fois que vous utilisez une dépendance particulière dans votre application, l'autre dépendance de cette dépendance particulière sera également présente dans votre système.
  2. certains navigateurs, en particulier Google Chrome restreint les fichiers chargés localement à des fins de sécurité de sorte que certaines technologies HTML 5 utilisées par Angular 2 produira une erreur lors du chargement en utilisant le fichier: protocol. Donc, vous avez besoin d'un serveur à partir duquel vous pouvez servir votre application de sorte que toutes les technologies disponibles HTML 5 est disponible pour la course angulaire 2.
  3. node.js est également nécessaire pour la capacité hot-module-reload pour le développement rapide d'applications car il fournit un file watcher api pour détecter les changements au code source.

mais il y a un moyen de développer L'application angulaire 2 hors ligne sans noeud.js.

  1. rappelez-vous quand j'ai dit que si vous parvenez à obtenir toutes les dépendances requises, Vous pouvez exécuter et développer votre application en mode hors connexion? Si vous pouvez trouver ou créer un paquet qui a toutes les dépendances requises dont votre application aura besoin, alors vous n'avez pas besoin de npm ou de jspm pour gérer les dépendances pour vous.
  2. pour le problème file-access-restriction , vous pouvez charger votre projet en extension. Les Extensions ont la possibilité d'utiliser toutes les technologies HTML 5 disponibles ainsi que certaines api puissantes (non disponibles même pour les applications servies sur un serveur), tout en étant local à votre environnement de développement. Vous n'avez donc pas besoin de lancer un serveur web pour accéder aux technologies HTML 5 Si vous servez votre application comme extension.
  3. pour la capacité hot-module-reload , vous pouvez l'approcher de l'autre côté. Au lieu d'avoir un observateur de fichier dans le serveur web pour surveiller les changements aux fichiers dans le système local, vous pouvez le faire à partir de l'application elle-même. Comme l'application peut fetch ou xmlhttprequest ressources qui sont nécessaires à la application, vous pouvez périodiquement fetch ou xmlhttprequest les ressources dont votre application a besoin et le comparer à une cache. Mais comment savez-vous quels fichiers vérifier? Vous pouvez chercher links dans la page, script , de img. si vous utilisez SystemJS comme chargeur de module, alors vous pouvez utiliser son registre pour chercher les fichiers nécessaires à votre application mais pas chargés dans la page, puisqu'il a été transpilé ou quelque chose. Tout en faisant tout cela peut être un drain de performance à votre système avec la charge supplémentaire de transpling ou prétraitement de code non natif, ce travail peut être externalisé à un web worker qui libérera le fil principal d'exécution dans le système pour votre code d'application.

vous ne me croyez pas? Voici la preuve.

  1. le projet Angular in Chrome sur github contient un paquet zippé qui contient les dépendances nécessaires pour développer un application minimal Angular 2 (par minimal, je me réfère au tutoriel Tour of Heroes référencé sur la page quickstart). De sorte que si vous êtes sur un système non supporté par noeud.js (oui, il y a, ChromeOS, par exemple) ou tout simplement sur une restriction de système dans le nœud.js n'est tout simplement pas disponible, toutes les dépendances requises sont disponibles et vous n'avez pas besoin de npm ou jspm pour gérer les dépendances requises pour vous.
  2. Il y a un preuve de concept de l'extension qui sert le tutoriel tour of heroes (les fichiers de développement, dactylographiés et tout) localement comme une extension chrome.
  3. l'extension implémente également une fonctionnalité hot-module-reload en se connectant aux primitives hmr développées par alexis vincent pour SystemJS. La fonctionnalité hot-module-reload est activée par un seul fichier javascript de sorte que si cette fonctionnalité n'est pas nécessaire ou prend trop de ressources, alors vous pouvez simplement supprimer la ligne de code incriminée.

mais soyez prévenus.

  1. si vous utilisez ce système, alors vous avez besoin d'un moyen de mettre à jour votre paquet de développement que la technologie avance et il se déplace à un rythme rapide (ce qui avec parler de L'angle 3 Quand L'angle 2 vient d'être libéré) ou les technologies que vous utilisez pour développer votre application peut devenir obsolète ou que quelque part le long de la ligne un changement d'api peut empêcher votre application d'être fonctionnel dans le futur. Vous n'êtes pas non plus assuré d'avoir des dépôts à jour pour les dépendances puisque ces types de paquets sont maintenus manuellement.
  2. grouper votre application comme une extension de Chrome comme dans Angular dans Chrome introduira des goulots d'étranglement de performance. Depuis le code est transpilé et les modules sont chargés paresseux, vous perdez les avancées de la compilation JIT et d'autres améliorations de performance que les moteurs javascript modernes utilisent pour optimiser le code navigateur. Cependant, ce que vous perdez en performance, vous gagnez la flexibilité d'utiliser la technologie que vous préférez développer. Il y a toujours un compromis. De plus, la performance hit est seulement au début car le code est chargé. Une fois chargé par l'application, le système saura comment mettre en œuvre les améliorations de performance. Lorsque vous distribuez votre application, vous avez vraiment besoin de compiler les ressources nécessaires pour tirer parti des améliorations de performance de moderne les moteurs javascript.
  3. la capacité hot-module-reload est actuellement une façon détournée de mettre en œuvre un observateur de fichiers qui utilise des conventions communes pour un projet (temp1.ts, temp1.CSS, temp1.htm) puisqu'il n'y a aucun moyen (je pourrais me tromper là-dessus) d'obtenir une liste définitive de toutes les ressources nécessaires à l'application mais pas chargée sur la page principale (les ressources transpirées ou pré-traitées).
50
répondu windsinger 2016-11-23 17:08:24

nœud.js est utilisé pour écrire Javascript du côté du serveur. anguleux.js est un cadre côté client.

Vous n'avez pas besoin de noeud.js à utiliser angulaire.js mais, vous pouvez installer npm (node packaged modules) pour utiliser certains outils impressionnants qui rendront votre vie en tant que développeur angulaire beaucoup plus facile. Par exemple: yoeman qui est un grand outil d'échafaudage. Il ya beaucoup d'autres outils disponibles sur npm voici un lien vers leur site En savoir plus sur angular sur le site officiel d'angular ou sur la chaîne youtube

9
répondu hasanain 2014-10-16 07:40:24

Pas de. Angular est utilisé du côté client et Node du côté serveur.

ils utilisent pour aller ensemble comme le Cheminée moyenne mais ce n'est pas nécessaire.

6
répondu kike 2014-10-16 07:34:17

vous n'avez pas besoin de Noeud.JS pour AngularJS à travailler. NodeJS est Côté Serveur, AngularJS est côté client.

si vous êtes nouveau à AngularJS, je suggérerais ce tutoriel AngularJS tutoriel . Dans le tutoriel, vous allez utiliser NodeJS, vous comprendrez pourquoi les deux fonctionnent ensemble, mais ne sont pas nécessaires.

3
répondu Billy 2014-10-16 07:35:05

il est difficile de répondre sans savoir comment fonctionne Votre outil D'édition D'images. Mais pour répondre à votre question, non, vous n'avez pas besoin de Noeud.js à utiliser AngularJS.

Angular est un cadre javascript frontal qui fonctionne dans le navigateur Web des clients.

noeud est un service qui peut exécuter javascript et est souvent utilisé sur un serveur peut-être en remplacement de PHP ( comme dans la pile moyenne ). Aussi, parce que Node est un service qui peut exécutez javascript il peut être utilisé dans votre ordinateur local lors du développement D'applications angulaires pour faire des tâches de fond telles que la minification css et javascript et effectuer des tests.

donc si votre outil D'édition D'images est développé en javascript et que votre application utilise Angular et Node (comme un serveur web), le code peut être exécuté du côté client ou du côté serveur.

ont une lecture sur la pile moyenne pour voir où le noeud et L'angle s'intègrent. Vous n'avez même pas besoin Nœud à tous, mais il est agréable de développer tous dans la même langue.

3
répondu JayMc 2014-10-16 07:42:05