2017-09-08 3 views
1

alors je suis ce fichier de configuration:Comprendre les différentes façons d'exportation dans Brunch config

exports.files = { 
    javascripts: { 
    joinTo: { 
     'vendor.js': /^(?!app)/, // Files that are not in `app` dir. 
     'app.js': /^app/ 
    } 
    }, 
    stylesheets: {joinTo: 'app.css'} 
}; 

exports.plugins = { 
    babel: {presets: ['latest']} 
}; 

exports.npm = { 
    styles: { 
    bootstrap: ['dist/css/bootstrap.css'] 
    } 
} 

Lorsque le code ci-dessus est déclenché les 5 fichiers sont construits et compilés en 3, comme prévu.

Ensuite, pour le bien de mieux comprendre, je change la première exportation dans mon fichier de configuration à ceci:

module.exports = { 
    files: { 
     javascripts: { 
      joinTo: { 
       'vendor.js': /^(?!app)/, 
       'app.js': /^app/ 
      } 
     }, 
     stylesheets: {joinTo: 'app.css'} 
    } 
} 

exports.plugins = { 
    babel: {presets: ['latest']} 
}; 

exports.npm = { 
    styles: { 
    bootstrap: ['dist/css/bootstrap.css'] 
    } 
} 

Et maintenant, le code d'amorçage ne sont pas compilés dans les feuilles de style final. Pourquoi est-ce que je ressens ce comportement?

Répondre

1

Cette question n'est pas directement liée au brunch mais plutôt au fait que le noeud gère les exportations. Consultez cette explication tirée de la node docs:

La variable exportations est disponible dans le périmètre de niveau de fichier d'un module, et est attribué la valeur de module.exports avant que le module est évalué .

Il permet un raccourci de sorte que module.exports.f = ... peut être écrit plus succinctement exports.f = ... Cependant, sachez que comme une variable , si une nouvelle valeur est affectée à exports, il n'est plus lié à module.exports:

module.exports.hello = true; // Exported from require of module 
exports = { hello: false }; // Not exported, only available in the module