Jshint: JSHint gera um erro ao incluí-lo como um módulo requirejs

Criado em 21 jan. 2016  ·  5Comentários  ·  Fonte: jshint/jshint

Oi,

Como parte de um POC que estou desenvolvendo, preparei uma pequena amostra que permitirá que meu aplicativo angular funcione com requirejs. Agora estou planejando integrar o JsHint. O único requisito é que não haja nodejs.

Peguei o arquivo js da pasta dist da versão e carreguei-o como um módulo necessário. Mas, ao fazer isso, recebo o seguinte erro
jshint_error

TypeError não capturado: _.each não é uma função

Todos os outros módulos que carreguei por meio de require são bons como bootstrap e angular. Tentei incluir o underscore.js e carregá-lo antes do jshint, mas sem sucesso.

Este é um bug do jshint ou estou fazendo algo errado. abaixo está o código para o bootstrapping do meu requirejs

require.config ({
baseUrl: 'scripts',
caminhos: {
'jshint': 'lib / jshint / jshint',
'angular': 'lib / angular / angular.min',
'rota angular': 'lib / angular / rota angular.min'

},
shim: {
    'app': {
        deps: ['jshint','angular', 'angular-route']
    },
    'angular-route': {
        deps: ['angular']
    }
}

});

exigir
(
[
'aplicativo'
],
função (app)
{
angular.bootstrap (documento, ['aplicativo']);
}
);

Comentários muito úteis

De alguma forma, a presença de requirejs (ou talvez AMD em geral) faz o carregamento do lodash falhar.
Funciona na v2.6.3, mas começa a falhar na v2.7.0

Eu tenho um exemplo mostrando amostra com v2.9.3 . O erro das ferramentas do desenvolvedor:

VM104 jshint.js:15777 
Uncaught TypeError: _.each is not a function
  require.14.lodash @ VM104 jshint.js:15777
  s @ VM104 jshint.js:6
  (anonymous function) @ VM104 jshint.js:6
  ...

Em contraste,

Qualquer ideia?

Todos 5 comentários

Eu esperaria que o sublinhado não fosse marcado como uma dependência de jshint. Além disso, o jshint moderno está usando o lodash, então pode haver alguns problemas de compatibilidade com o lodash, embora eu duvide disso.

Apenas cuspindo

Eu enfrentei o mesmo problema ... Alguma solução alternativa?

De alguma forma, a presença de requirejs (ou talvez AMD em geral) faz o carregamento do lodash falhar.
Funciona na v2.6.3, mas começa a falhar na v2.7.0

Eu tenho um exemplo mostrando amostra com v2.9.3 . O erro das ferramentas do desenvolvedor:

VM104 jshint.js:15777 
Uncaught TypeError: _.each is not a function
  require.14.lodash @ VM104 jshint.js:15777
  s @ VM104 jshint.js:6
  (anonymous function) @ VM104 jshint.js:6
  ...

Em contraste,

Qualquer ideia?

Em SystemJS, você precisa especificar o formato como global (em oposição a AMD ou CommonJS) em meta conforme https://github.com/systemjs/systemjs/blob/master/docs/module-formats. md # globals

SystemJS.config({
    baseURL: './js',
    defaultJSExtensions: true,
    paths: {
        'jquery': './js/vendor/jquery/jquery-3.2.1.min.js',
        // ...
    },
    meta: {
        './js/vendor/codemirror/addon/lint/jshint.js': { format: 'global' }
    }
});
SystemJS.import('./js/app.js').then(function (app) {
    // ...
})

Observe que o Webpack detecta automaticamente o formato.

Esperançosamente, isso ajudará com o requireJS.

De alguma forma, a presença de requirejs (ou talvez AMD em geral) faz o carregamento do lodash falhar.
Funciona na v2.6.3, mas começa a falhar na v2.7.0

Eu tenho um exemplo mostrando amostra com v2.9.3 . O erro das ferramentas do desenvolvedor:

VM104 jshint.js:15777 
Uncaught TypeError: _.each is not a function
  require.14.lodash @ VM104 jshint.js:15777
  s @ VM104 jshint.js:6
  (anonymous function) @ VM104 jshint.js:6
  ...

Em contraste,

Qualquer ideia?

Após 2.6.3, ele mudou de sublinhado para Lodash.
Verifique o 'var _ = require ("sublinhado");' em 2.6.3 e 'var _ = require ("lodash");' em 2.12.10

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jugglinmike picture jugglinmike  ·  6Comentários

NemoStein picture NemoStein  ·  7Comentários

ghost picture ghost  ·  5Comentários

Guichaguri picture Guichaguri  ·  8Comentários

derekdata picture derekdata  ·  11Comentários