2013-06-04 6 views
1

Salut, j'essaie de réaliser ce qui suit. J'utilise grunt pour la validation de jshint.jshint grunt options exportées

Quelque part dans un fichier que j'ai utilisé:

var logger = function() { 
// some ode 
} 

Parce que l'enregistreur est jamais réellement utilisé jshint me montre correctement l'erreur suivante.

W098: 'logger' is defined but never used. 

Je pourrais définir inutilisé à faux et cela fonctionnerait parfaitement. Mais je veux en fait que l'option se déroule dans d'autres fichiers et m'avertit des variables inutilisées. Donc l'option inutilisée ne marchera pas pour moi.

j'ai vu aussi que je pourrais utiliser un commentaire en ligne comme celui-ci: * exporté EXPORTED_LIB */

Mais je préférerais en fait pour éviter d'encombrer mes fichiers avec de tels commentaires. Y at-il une chance que je puisse spécifier une option exportée dans mon fichier grunt comme je peux par exemple pour les globals.

Heres la partie jshint de mon gruntfile:

jshint: { 
     // global options 
     options: { 
      camelcase: true, 
      curly: true, 
      eqeqeq: true, 
      forin: true, 
      immed: true, 
      indent: 4, 
      latedef: true, 
      newcap: true, 
      noarg: true, 
      nonew: true, 
      plusplus: false, 
      quotmark: 'single', 
      undef: true, 
      unused: true, 
      strict: true, 
      maxparams: 4, 
      maxdepth: 4, 
      trailing: true, 
      maxlen: 120, 
      browser: true, 
      node: true 
     }, 
     server_logger: { 
      src: [BASE_PATH_SERVER_LOGGER, '/**/*.js'].join(''), 
      options: { 
       browser: false 
      } 
     }, 
     client_logger: { 
      src: [BASE_PATH_CLIENT_LOGGER, '/**/*.js'].join(''), 
      options: { 
       node: false, 
       devel: true 
      } 

     } 
    } 

Merci pour votre temps.

Meilleures salutations Playerwtf

MISE À JOUR: J'ai fait une question sur dépôt github jshint here

Répondre

1

Ceci a été récemment corrigé et fonctionne maintenant comme je l'attendrais.

github-issue

À titre d'exemple, je l'utilise comme ça dans mon gruntfile

client_logger: { 
    expand: true, 
    cwd: BASE_PATH_CLIENT_LOGGER, 
    src: '**/*.js', 
    options: { 
     node: false, 
     devel: true, 
     globals: { 
      logger: true, 
      expect: true, 
      it: true, 
      describe: true, 
      beforeEach: true, 
      afterEach: true 
     }, 
     exported: ['logger'] 
    } 
} 

Mais le module NPM n'a pas encore été mis à jour. Si vous voulez que cela fonctionne, vous devrez copier manuellement la version la plus récente à partir du dépôt jshint github et remplacer celle du module actuel ou attendre qu'elle soit mise à jour.

0

je pense que vous pouvez exclure des fichiers dans vos src-fichiers, vous pouvez donc exclure votre fichier enregistreur de votre le lissage de base (je suppose que le fichier de logger est ici logger.js), et lint le fichier logger séparément avec l'indicateur inutilisé désactivé.

en savoir plus sur ce here - « au début d'un modèle annulera le match »>

vous pouvez définir la CWD (et laisser la jointure des choses). voir plus à ce sujet dans la documentation: Building the files object dynamically

jshint: { 
    // global options 
    options: { 
     ... your global options here 
    }, 
    server_logger: { 
     options: { 
      browser: false 
     }, 
     files: [{ 
      cwd: BASE_PATH_SERVER_LOGGER, 
      src: ['/**/*.js', '!logger.js'] 
     }] 
    }, 
    client_logger: { 
     options: { 
      node: false, 
      devel: true 
     }, 
     files: [{ 
      cwd: BASE_PATH_CLIENT_LOGGER, 
      src: ['/**/*.js', '!logger.js'] 
     }] 
    }, 
    lint_logger: { 
     options: { 
      unused: false 
     }, 
     files: [{ 
      src: ['logger.js'] 
     }] 
    } 
} 

pas 100% sûr si cela fonctionne, mais je pense qu'il devrait au moins vous conduire dans la bonne direction. Si vous avez besoin de spécifier un chemin et pas seulement un fichier à exclure, vous pouvez placer votre fichier logger dans un dossier séparé et simplement exclure ce dossier!

+0

Salut merci pour votre réponse. Je n'ai pas de nouvelles de cwd merci pour ça. Bien que je suis sûr que votre solution devrait fonctionner ce n'est pas très élégant.Je considérais la même chose que vous avez mentionné mais je pense que je vais avoir de plus en plus de fichiers tels que logger.js et je n'aime pas spécifier tous ceux séparés. Mais je vais devoir voir s'il y a une alternative. J'espérais vraiment une option comme exportée: {// variables exportées} car cela fonctionne pour les globales – Playerwtf

Questions connexes