2
votes

Différence entre les commentaires et les commentaires avec le signe égal dans application.js

Pourquoi les lignes dans application.js semblent-elles être commentées?

Je vois des tutoriels avec des directives pour ajouter des lignes de code au fichier application.js , mais les lignes ajoutées semblent être commentées.

Un exemple de base ici

Voici à quoi ressemble mon fichier (les lignes que j'ai ajoutées semblent être des commentaires):

 entrez la description de l'image ici

Je soupçonne que = peut annuler le commentaire, mais dans toutes les langues que je connais, une fois qu'un commentaire est déclaré, cette ligne est considérée comme un commentaire, peu importe ce qui se trouve sur le reste ça


1 commentaires

= n'annulerait pas le commentaire. Cependant, il peut y avoir un outil standard qui analyse les commentaires et recherche cela pour faire quelque chose. Vous pouvez le voir avec JSDoc (par exemple, @return a user name documentera ce qu'un fonction renvoie) ou métadonnées userscript .


3 Réponses :


1
votes

Pas toujours, par exemple en PHP, vous avez des commentaires d'annotation: https: / /php-annotations.readthedocs.io/en/latest/UsingAnnotations.html

Dans JS, lorsque vous utilisez flow, vous ajoutez un commentaire en haut du fichier, comme ceci:

// @flow

[file content]

C'est en fait un modèle courant


0 commentaires

5
votes

sprockets utilise ce type de commentaire // = require xx pour la génération d'actifs de l'utilisateur final comme ils l'appellent.

Ce n'est pas lié à la langue, mais plutôt à quelque chose que cet outil fait.

Cela s'appelle une annotation

La raison pour laquelle ce modèle est très populaire est qu'il n'affecte en aucune façon le code réel.

À la fin de la journée, il s'agit uniquement de collecter tous les fichiers, de les compresser et de les servir à l'utilisateur et de ne rien changer réellement au code.


1 commentaires

c'est peut-être une question idiote, mais pourquoi les pignons utilisent-ils cette convention? (par opposition aux lignes de code non commentées)



2
votes

Depuis pignons :

Les directives sont des commentaires spéciaux dans votre fichier d'asset et la principale manière de interagir avec les processeurs. Quel genre d'interactions? Vous pouvez utiliser ces directives pour dire à Sprockets de charger d'autres fichiers, ou spécifier dépendances avec d'autres éléments.

Par exemple, disons que vous avez un JavaScript personnalisé que vous écrit. Vous mettez ce javascript dans un fichier appelé beta.js . le javascript fait un usage intensif de jQuery, vous devez donc le charger avant votre code s'exécute. Vous pouvez ajouter une directive require en haut de beta.js :

# Single-line comment blocks (CoffeeScript)
#= require foo

Le processeur de directive comprend les blocs de commentaires dans trois formats:

// Single-line comment blocks (SCSS, JavaScript)
//= require foo

/* Multi-line comment blocks (CSS, SCSS, JavaScript)
 *= require foo
 */

//= require jquery

$().ready({
  // my custom code here
})

Remarque: les directives ne sont traitées que si elles précèdent un code d'application. Une fois que vous avez une ligne qui n'inclut pas de commentaire ou un espace blanc, Sprockets arrêtera de rechercher des directives. Si vous utiliser une directive en dehors de l '"en-tête" du document, il ne le fera pas quoi que ce soit, et ne soulèvera aucune erreur.

Voici une liste des directives disponibles:

  • require - Ajoute le contenu d'un fichier à l'actuel
  • require_self - Modifier l'ordre de concaténation du contenu actuel au courant
  • require_directory - Ajouter le contenu de chaque fichier dans un dossier au courant
  • require_tree - Ajouter le contenu de tous les fichiers dans tous les répertoires dans un chemin vers le courant
  • link - Rendre le fichier cible compilé et accessible au public sans ajouter de contenu à l'actuel
  • link_directory - Rendre le répertoire cible compilé et accessible au public sans ajouter de contenu à l'actuel
  • link_tree - Rendre l'arborescence cible compiler et être accessible au public sans ajouter de contenu à l'actuel
  • depend_on - Recompilez le fichier actuel si la cible a changé
  • stub - Ignorer le fichier cible


0 commentaires