web-dev-qa-db-fra.com

SailsJS prend-il en charge ES6?

Est-il possible d’obtenir ES6 in sails.js ?

14
Jaseem Abbas

Ceci est une question node.js ne navigue pas spécifiquement. Oui, la version actuelle de node.js prend en charge certaines normes ES2015 en fonction de votre version de Node.js et des indicateurs que vous utilisez lorsque vous démarrez votre serveur. 

La plupart des fonctionnalités sont déjà actives, mais pour utiliser toutes les fonctionnalités, vous devez utiliser node app.js --es_staging ou node app.js --harmony dans votre dossier de projet au lieu de sails lift.

Le lien suivant fournit des informations mises à jour sur les fonctionnalités de la version actuelle de la prise en charge du nœud et sur la façon d'y accéder.

https://nodejs.org/en/docs/es6/

5
Meeker

SailsJS est juste un framework écrit avec la syntaxe ES5 et il n’a pas besoin de supporter ES6.

Vous pouvez écrire un projet avec la syntaxe ES6 comme vous le faites habituellement et utiliser Babel\Traceur\what pour l'exécution.

Mon flux est le suivant:

  • Projet de création de voiles;
  • Installez babel en tant que devDependencies;
  • Mettre à jour le script npm start dans package.json avec "start": "babel-node app.js";

C'est tout. Je peux écrire du code ES6\7 dans mes contrôleurs\models\etc et exécuter le serveur via la commande npm start. Cela fonctionne comme d'habitude comme vous l'avez écrit avec la syntaxe ES5.

Babel Transpiler

Babel Node

15
ghaiklor

Vous devez vérifier la compatibilité de ES6 avec node.js à la place de tout framework tel que sails.js, express, etc.

Enfin, node.js remplacera le code javaScript par le code côté serveur. Le cadre que vous utilisez n’importe donc.

Vous pouvez utiliser les voiles avec ES6:

Pour la compatibilité ES6, vérifiez kangax.github.io .

Conseillé :

Voiles v 0.11.0 ou supérieur

Noeud v 4.. ou supérieur 

npm v 2.14.4 ou supérieur 

Vous êtes maintenant prêt à explorer la nouvelle Ecmascript6 feature.

Vous obtiendrez la nouvelle fonctionnalité de http://es6-features.org/ .

TEST:

Code:

ecma6Test:function(req,res,next){
    var evens =req.body.evens
    odds  = evens.map(v => v + 1);
    res.json({sucess:true,'odds':odds});
}

Demande:

{"evens":[2,4,6,8,10]}

Réponse:

{
    "sucess": true,
    "odds":[3, 5, 7, 9, 11]
}
8
Vishnu Mishra

La réponse de Vishnu vous a couvert.

La liste explicite des fonctionnalités ES6 disponibles dans la dernière version du noeud est disponible ici https://nodejs.org/en/docs/es6/

Quelles fonctionnalités ES6 sont livrées avec Node.js par défaut (aucun indicateur d'exécution requis)?

  • let (mode strict uniquement)
  • const
  • function-in-blocks (mode strict uniquement)
    • À partir de la version 3.31.74.1, les déclarations à portée de bloc sont implémentées intentionnellement avec une limitation non conforme au code en mode strict. Les développeurs doivent être conscients que cela va changer à mesure que la v8 continue à se conformer aux spécifications ES6.
  • Classes (mode strict uniquement)
  • Des collections
  • Carte
  • Carte Faible
  • Ensemble
  • WeakSet
  • Tableaux typés
  • Générateurs
  • Littéraux binaires et octaux
  • Extensions littérales d'objet (propriétés et méthodes abrégées)
  • Promesses
  • Nouvelles méthodes de chaîne
  • Symboles
  • Modèle de chaîne
  • Fonctions de flèche
2
Fred Stark

Il y a le voiles-hook-babel hook qui pourrait vous convenir. Cela ne fonctionne pas pour moi, comme je l'explique ci-dessous, mais j'espère que cela aura une visibilité accrue, que cela s'améliorera et que cette réponse sera plus pertinente.

Actuellement, à partir de la v6.0.1, la bibliothèque fonctionnera pour les fichiers chargés après l'exécution des hooks sails. Cela signifie que si vous souhaitez utiliser ES2015, par exemple, votre fichier config/routes.js, vous obtiendrez une erreur de syntaxe. Mais comme suggéré dans ce numéro , cela devrait fonctionner par exemple pour. fichiers dans le dossier api.

1
Tyler Collier