Quando eseguo il mio progetto localmente con il mio grunt: task del server, il progetto funziona come mi aspetto. Tuttavia, dopo la costruzione, che prende tutto il codice del fornitore e lo inserisce in un unico file, due dei miei moduli necessari non sono disponibili e il progetto non funziona.Grunt build non esponendo le informazioni globali ho bisogno
Ecco la mia configurazione requirejs:
requirejs.config
baseUrl: './js'
shim:
'underscore':
exports: '_'
'backbone':
deps: ['underscore', 'jquery']
exports: 'Backbone'
'stack':
deps: ['d3.global']
exports: 'stack'
'highlight':
exports: 'hljs'
paths:
'underscore': '../components/underscore/underscore'
'backbone': '../components/backbone/backbone'
'jquery': '../components/jquery/jquery'
'd3': '../components/d3/d3'
'd3.global': '../components/d3.global/d3.global'
'stack': '../components/stack/stack'
'highlight': '../components/highlightjs/highlight.pack'
require ['app/vendors'],->
console.log("Backbone", Backbone)
console.log("_", _)
console.log("$", $)
console.log("d3", d3)
console.log("stack", stack)
console.log("hljs", hljs)
app/fornitori assomiglia
define [
'underscore'
'jquery'
'backbone'
'text'
'd3.global'
'stack'
'highlight'
], ->
Quando eseguo il progetto a livello locale tramite grugnito, vedo tutte le variabili globali stampati. Tuttavia, quando costruisco il progetto, Backbone Underscore e JQuery vengono stampati, mentre lo stack fallisce (anche hljs non è disponibile, e se rimuovo lo stack da app/venditori, non risolve l'evidenziazione, quindi probabilmente non è una cosa da ordine) .
il requirejs ottimizzatore viene chiamato con la seguente configurazione:
requirejs:
compile:
options:
baseUrl: 'js/'
appDir: './<%= yeoman.tmp_dist %>/'
dir: './<%= yeoman.dist %>/'
wrap: true
removeCombined: true
keepBuildDir: true
inlineText: true
mainConfigFile: '<%= yeoman.tmp_dist %>/js/main.js'
# no minification, is done by the min task
optimize: "none"
modules: [
{ name: 'app/vendors', exclude: [] }
{ name: 'app/app', exclude: ['app/vendors'] }
{ name: 'main', exclude: ['app/app', 'app/vendors'] }
Ci potrebbe essere qualcosa di sbagliato con la pila ed evidenziare i file che ho bisogno di risolvere il problema al fine di rendere requirejs ottimizzazione e uglify lavoro con loro?
Ho installato highlightjs tramite bower aggiungendo "highlightjs": "~8.0"
al mio file bower.json ed eseguendo bower install
. Ho scaricato stack.js da mbostock's stack project. Sto usando v0 al momento, con piccole modifiche per farlo funzionare in questo progetto. La fonte di tutti questi è nel components directory of my github project.
BOUNTY Se qualcuno è disposto a clonare il repo se stessi, e provare a eseguire il progetto con grunt server
e grunt build
per aiutarmi a rintracciare il problema, sarei molto grato. Al momento ho gli script del fornitore nel repository github stesso, quindi tutto ciò di cui avresti bisogno è bussola e bower per eseguirlo.
Potete mostrare la configurazione che date all'operazione grunt che richiama l'ottimizzatore di RequireJS? – Louis
Ok, l'ho aggiunto (sperando che fosse quello che volevi). Ho usato footman-generator come generatore di yeoman per questo file, quindi un sacco di codice gruntfile proviene da lì. – elsherbini
Sì, è quello che volevo. Sfortunatamente, niente mi salta addosso come sbagliato. – Louis