Hi,
Als Teil eines POC, das ich entwickle, habe ich ein kleines Beispiel vorbereitet, das es meiner eckigen App ermöglicht, mit requirejs zu arbeiten. Jetzt plane ich JsHint zu integrieren. Die einzige Voraussetzung ist, dass es keine nodejs gibt.
Ich habe die js-Datei aus dem dist-Ordner der Version genommen und als Anforderungsmodul geladen. Aber dabei erhalte ich folgende Fehlermeldung
Uncaught TypeError: _.each is not a function
Alle anderen Module, die ich durchgeladen habe, sind in Ordnung, wie Bootstrap und Angular. Ich habe versucht, underscore.js einzuschließen und vor jshint zu laden, aber ohne Erfolg.
Ist das ein Fehler mit jshint oder mache ich etwas falsch. Unten ist der Code für mein requirejs Bootstrapping
require.config({
baseUrl: 'Skripte',
Pfade: {
'jshint':'lib/jshint/jshint',
'angular': 'lib/angular/angular.min',
'angular-route': 'lib/angular/angular-route.min'
},
shim: {
'app': {
deps: ['jshint','angular', 'angular-route']
},
'angular-route': {
deps: ['angular']
}
}
});
benötigen
(
[
'App'
],
Funktion (App)
{
winklig.bootstrap(Dokument, ['app']);
}
);
Ich würde erwarten, dass der Unterstrich nicht als Abhängigkeit von jshint markiert ist. Außerdem verwendet modernes jshint lodash, daher kann es einige Kompatibilitätsprobleme mit lodash geben, obwohl ich dies bezweifle.
Nur spucken
Ich hatte das gleiche Problem... Irgendwelche Problemumgehungen?
Irgendwie führt das Vorhandensein von requirejs (oder vielleicht AMD im Allgemeinen) dazu, dass das Laden von Lodash fehlschlägt.
Es funktioniert in v2.6.3, aber es beginnt in v2.7.0 zu fehlschlagen
Ich habe ein Beispiel, das es mit v2.9.3 zeigt . Der Fehler der Entwicklertools:
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
...
Im Gegensatz,
Irgendeine Idee?
In SystemJS müssen Sie das Format als global
(im Gegensatz zu AMD oder CommonJS) in Meta gemäß https://github.com/systemjs/systemjs/blob/master/docs/module-formats angeben
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) {
// ...
})
Beachten Sie, dass Webpack das Format automatisch erkennt.
Hoffentlich hilft dies bei requireJS.
Irgendwie führt das Vorhandensein von requirejs (oder vielleicht AMD im Allgemeinen) dazu, dass das Laden von Lodash fehlschlägt.
Es funktioniert in v2.6.3, aber es beginnt in v2.7.0 zu fehlschlagenIch habe ein Beispiel, das es mit v2.9.3 zeigt . Der Fehler der Entwicklertools:
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 ...
Im Gegensatz,
- Beispiel mit JSHINT v2.6.3 funktioniert;
- Beispiel mit v.2.7.0 beginnt zu scheitern.
Irgendeine Idee?
Nach 2.6.3 wechselte es von Underscore zu Lodash.
Überprüfen Sie das 'var _ = require("Unterstrich");' in 2.6.3 und 'var _ = require("lodash");' am 2.12.10
Hilfreichster Kommentar
Irgendwie führt das Vorhandensein von requirejs (oder vielleicht AMD im Allgemeinen) dazu, dass das Laden von Lodash fehlschlägt.
Es funktioniert in v2.6.3, aber es beginnt in v2.7.0 zu fehlschlagen
Ich habe ein Beispiel, das es mit v2.9.3 zeigt . Der Fehler der Entwicklertools:
Im Gegensatz,
Irgendeine Idee?