Assembleur modules Node.JS sous forme de widgets


#1

Bonjour à tous,

je suis assez novice dans l’univers de Node.js, et parfois je me me pose la question : n’existe-t-il pas une plateforme avec interface graphique permettant d’assembler des modules Node.js, un peu à l’image de ce que propose wordpress et le système de widgets ? En gros un service avec interface graphique permettant de construire des micro-projets en node, facilitant le côté hébergement, et avec le minimum de code… ?


#2

Bonjour fdolin,

J’imagine que, quand tu fais référence à un module Node.js, tu fais référence à un module « npm ». Ces modules sont un ensemble complet de code JavaScript bas niveau. C’est ce bas niveau qui nous intéresse ici. Cela signifie concrètement que, tout module peut avoir, une ou plusieurs dépendances à d’autres modules pour fonctionner et ceci dans un seul but : **fournir un unique point de sortie disponible dans index.js et devenir à son tour une dépendance d’un autre projet. Ainsi depuis un module tiers, en installant ton module npm install plop j’ai accès via mon code à plop dont le point d’entré est stocké dans ./node_modules/plop/index.js (sauf contre directive inclus dans le ./node_modules/plop/package.json qui dirait que la porte d’entrée c’est ./node_modules/plop/plop.js par exemple).

Cela veut donc dire que si une tel possibilité existait, elle ne se présenterait surement pas sous forme de widget, puisqu’on parle ici de code bas niveau. Ça se présenterait plutôt sous une forme qui te permettrait, après avoir écrit :

var plop = require('plop');

de te demander, si le node_modules n’est pas trouvé en dépendance, de l’installer immédiatement et de l’ajouter à la liste des dépendances (ou dev-dépendance) du package.json. En faisant un clique droit sur cette ligne de code, tu pourrais éventuellement mettre à jour ou télécharger le modules, si tu avais précédemment annulé la récupération.

J’imagine que des IDEs et plugins fournissant une tel possibilité existe partout. Sur Sublim text, je download manuellement à la ligne de commande ce que j’ai besoin en amont.

Une interface de widget pour « drag & dropper » des modules les uns dans les autres pour avoir une arborescence de module n’a pas de sens car in-fine, npm gère « à plat » la liste de tes dépendances dans node_modules à partir du module couramment en développement et ce qui dicte réellement la nécessité d’avoir un module…

…c’est ton code.

Aussi « l’arborescence » dont tu parles n’est que « poudre au yeux ». Toi, en tant que développeur, tu crées un nouveau projet, et tu te sers dans le code des require dont tu as besoin, ce qui créé un node_modules de la totalité des dépendances de dépendances de dépendance… à plat en fonction de ton code à toi. Si il s’avère que ton projet peut fournir une API, tu vas à ton tour exporter quelque chose via index.js au cas ou quelqu’un se servirait à son tour de ton projet… dans le sien ! (ce qui signifie qu’il devra être sur un npm-like (ou sur npm) serveur).

À son tour quand il créera un module qui dépend du tiens, toutes les dépendances au tiens se trouverons dans son node_modules global à plat (exception faites d’un même module, mais dans une version différente qui pourrait se retrouver à un niveau plus bas, mais au final, la manière dont node_modules est géré te regarde pas).


#3

Je pense comprendre ce que souhaite @fdolin
Je pense qu’il veut drag n drop des webcomponents (offrant une variété de contenus) sur un canevas et ainsi assembler soit une UI backend (espace admin) soit une UI front-end.
Auquel cas lesdits webcomponents sont branchés à des API web qui s’appuient en interne sur des modules NPM.
C’est à peu près ça @fdolin?


#4

Bonjour et merci à tous les 2 d’avoir pris le temps de répondre ! @Joris cest exactement ce que je souhaite faire ! Est ce qu’une telle solution existe deja ?


#5

Ok @Joris et @fdolin.

Je comprends la demande. Cependant, le fait que l’on drag & drop des fonctionnalités d’UI, qui tape dans des APIs, n’a rien a voir avec un « drag & drop » d’UI aussi le titre « Assembleur modules Node.JS sous forme de widgets » est a changé car à l’ouest :D

En espérant que @Joris t’en dise un peu plus @fdolin !


#6

Du coup effectivement le titre n’est plus approprié.

Les seules solution que je vois c’est Ionic Creator, voire invisionapp.com
peut etre les outils de design intégrés a Xcode.
La “vérité” doit être quelque part sur le marché des outils de design web, de prototypage,
qui se situent entre la maquette plate et la web app dynamique “previewable”.
Mais je n’en sais pas davantage, malheureusement.