'definieren' ist nicht definiert " - Fehler auf RequireJS & Yo Webapp-generator
Ich habe gekämpft, ein paar Tage, um dies herauszufinden, aber schließlich brauche ich Ihre Hilfe heute.
mein repo: https://github.com/seoyoochan/bitsnut-web
, was ich erreichen will:
- Laden und optimieren-r.js
- Schreiben bower Aufgaben für RequireJS und r ist.js :
Aufgaben: verkleinern & verunstalten & Verkettung für RequireJS und optimieren mit "r".js auf die Produktion
- Ausschließen von js script-tags in index.html
bei der Verwendung wiredep
Aufgaben und laden Sie Sie durch RequireJS loader?
Ich nutze Yeoman 'Webapp' generator und erzeugt das Gerüst app.
Ich installierte backbone, marionette, text, Unterstrich, etc und über bower install
Ich veränderte bower.json
durch entfernen dependencies
und Links nur "requirejs": "~2.1.16"
auf dependencies
. (devDependencies
leer ist)
weil ich [2][grunt-wiredep]
ist alles automatisch geladen bower_components
in index.html
.
Ich veränderte .bowerrc
zum speichern von Abhängigkeiten bei app/scripts/vendor
.
Aber das problem ist, dass ich nicht weiß, wie erfolgreich laden Sie durch ReuqireJS und nicht zum laden der Anbieter, da die script-tags innerhalb index.html
.
Ich Schreibe ein paar Aufgaben für RequireJS und r ist.js, aber nicht wissen, wie dieses Ziel zu erreichen ( habe ich installiert grunt-contrib-requirejs
obwohl )
Will ich Folgen der 4. Methode zu verwenden r.js
bei https://github.com/jrburke/requirejs/wiki/Patterns-for-separating-config-from-the-main-module. aber das Problem begegnete ich war, dass RequireJS in der Dokumentation nicht schlagen, nicht zu verwenden named module
, aber anonymous module
.
Ich würde gerne hören, verschiedene Meinungen über wie sollte ich Vorgehen.
Ich wirklich zu schätzen Ihre Hilfe im Voraus!
InformationsquelleAutor seoyoochan | 2015-03-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laden Sie Ihre Skripte manuell hier und hier, was die ganze Sache
requireJS
nutzlos. Sie ladenmain
ersten hier config.js#L49.Stattdessen sollten Sie nur diese Zeile in Ihre index.html
Und laden alle Ihre Abhängigkeiten in der Datei (wie Sie mit
main
) mitdefine()
undrequire()
. Wie Sieexports
ab und stellt die Werte als Globale Variablen, Funktionen können leer sein. Hier ist ein Beispiel:Auch die
baseUrl
ist das gleiche wie das Verzeichnis derdata-main
Ordner Attribute (http://requirejs.org/docs/api.html#jsfiles):Also ich denke, deine
baseUrl
imconfig.js
Punkte zuscripts/scripts/
-Ordner, die nicht vorhanden ist. Es könnte/solltevendor/
statt (und entfernen der Verkäufer ein Teil von all den Erklärungen) oder einfach leer gelassen.Statt
wiredep
Sie könnten versuchen, mit https://github.com/yeoman/grunt-bower-requirejs, die nicht ähnliche Dinge zuwiredep
aber speziell fürbower/requirejs
apps (siehe: https://github.com/stephenplusplus/grunt-wiredep/issues/7)Ihre repo-doens T sind die dist-Ordner für
jQuery
, aber ansonsten hier ist ein funktionierendes Beispiel vonconfig.js
: http://jsfiddle.net/petetnt/z6Levh6r/Als für die Modul-definition, es sollte
require(["dependency1", "dependency2"])
und das Modul sollte sich selbst zurückgeben. Derzeit Ihre
main
- Datei setzt sich als eine AbhängigkeitAls Sie bereits den
backbone
undmarionette
als globals mitexports
können Sie wieder die Funktion Attribute leer, so dass Ihr Haupt-Datei sollte wie folgt Aussehen:Und wie Sie bereits verwenden
define
zu ladenmain
nichtrequire
es wieder. Stattdessen rufen Sie einfachApp.start()
innerhalb derdefine
Funktion.https://jsfiddle.net/66brptd2/ (config.js)
grunt serve
meine app aus dem repo, die Konsole meckert viel Zeug .. und wie kann ichconfig.js
siehemain.js
? oder lassen Siemain.js
sieheconfig.js
? Ich dachte, ich könnte einfach sagenrequire
die definierten Modul-Datei festlegen, indemdefine() method
, bin ich falsch?Ich zog Ihre repo aktualisiert und modifiziert die
config.js
- Datei ein wenig: siehe Ende der Seite für eine Geige. Die repo nicht enthalten /dist/-Ordner fürjquery
obwohl. Ich habe nicht bemerkt, dass Sie (korrekt) gesetzt, die Exporte, so kann man / sollte, lassen Sie das definieren und ready-Funktionen, Attribute leer.Danke! Fast hat es jetzt funktioniert, aber wenn ich eine ["main"] in
config.js
. es gibtundefined
. Blick auf dieses s18.postimg.org/6dcw0l57t/... und ich aktualisiert die repoSiehe mein edit wieder, es behebt einige Probleme mit der Main.
Aaand einige Renn-Bedingungen. Ich denke, dass es noch verbessert werden könnte, ein bisschen, aber es funktioniert endlich 🙂
InformationsquelleAutor Pete TNT