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
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']);
}
);
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.0Eu 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,
- amostra com JSHINT v2.6.3 funciona;
- amostra com v.2.7.0 começa a falhar.
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
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:
Em contraste,
Qualquer ideia?