2017-07-19 3 views
0

Ich folgte dieser Anleitung: http://blob.tomerweller.com/reagent-import-react-components-from-npm und es hat super funktioniert. Ich schaffte es sogar eines meiner eigenen NPM-Modul im oberen Teil der Beispiel-App der Re-Rahmen zu verwenden: https://github.com/Day8/re-frame/tree/master/examples/simple/'a ist undefiniert' beim kompilieren eines cljs prj mit einem NPM-Modul unter: prod profile

Starten des resultierenden App mit:

lein clean && lein figwheel 

alles funktioniert ok, aber wenn ich tun:

lein do clean, with-profile prod compile 

Ich bekomme eine TypeError: a is undefined. Irgendeine Idee, das zu beheben?

Lassen Sie mich mit dem Code zur Verfügung stellen: die schlechte begehen ist here, während beide :dev und :prod Profile OK at this just previous commit arbeiten.

aktualisieren: Ich schaffte es die kompilierte Version wie folgt aus (siehe the commit) zu beheben:

return d.c?d.c(c,v,w):d.call(null,c,v,w)}}(G,r,b,c,d,e)),I=dw(G);rf.b?: […] 
    };w.b=v;w.c=f;return w}()}(c,d,e,f))};hf.b(ow,ik);hf.b(ow,bp);hf.b(ow,To); […] 
    function nx(a){var b=window.deps["react-mathjax"], 
- c=window.deps.clubexpr.kf; 
+ c=window.deps.clubexpr.renderLispAsLaTeX; 
    return new U(null,3,5,V,[Vj,b.Context,new U(null,4,null)} 
    function Wv(){return function(a){return function(){return new U(null,6,5,V,[…] 

Dies scheint eine Kompilation Fehlkonfiguration oder Bug zu mir.

Update 2: mein Code kompiliert OK, wenn ich :optimizations-:simple gesetzt (war :advanced). Siehe the cljs compiler doc about this option.

Danke.

Antwort

1

Der Code, der fehlschlägt, ist here.

Es sieht so aus, als müssten Sie externs für clubexpr angeben, damit der Closure Compiler renderLispAsLatex nicht als kf umschreiben kann. Beim Compilieren unter: simple schreibt der Closure Compiler keine Funktionsnamen neu, so dass dieses Problem nicht auftaucht.

Als eine Randnotiz sollten Sie wahrscheinlich aget nicht verwenden, um Objekte aus dem Fenster zu erhalten, aget ist nur für den Array-Zugriff vorgesehen. Um Objekte zu erhalten, sollten Sie verwenden. Sehen Sie diesen Beitrag auf Checked Array Access für weitere Informationen zu diesem Thema.

+0

Vielen Dank für Ihre Antwort und diese sehr neue wertvolle Information. Ich kenne mich jedoch nicht mit externen Benutzern aus und habe es nicht geschafft, das Online-Tool zu verwenden. Ist mein Modul richtig strukturiert? https://clubexpressions.github.io/node-clubexpr/index.js – Gra

+0

Nicht sicher, sorry, es gibt viele Infos unter https://github.com/cljsjs/packages/wiki/Creating-Externs. –

+0

OK, nicht viel Zeit, um es jetzt zu versuchen, aber ich werde Sie aktualisieren und stimmen/Ihre Antwort entsprechend akzeptieren. Vielen Dank! – Gra

Verwandte Themen