Итак, я получил этот файл конфигурации:
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']
}
}
Когда приведенный выше код запускается, 5 файлов создаются и скомпилируются в 3, как и ожидалось.
Затем, чтобы лучше понять, я меняю первый экспорт в свой файл конфигурации на это:
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']
}
}
И теперь код начальной загрузки не скомпилируется в окончательные таблицы стилей. Почему я испытываю такое поведение?
Этот вопрос напрямую не связан с Brunch, но больше, как узел обрабатывает экспорт. Ознакомьтесь с этим объяснением, взятым из документов узла:
Переменная экспорта доступна в пределах области файлового уровня модуля и ей присваивается значение module.exports перед вычислением модуля.
Он позволяет использовать ярлык так, чтобы
module.exports.f =...
можно было писать более кратко какexports.f =...
Однакоmodule.exports.f =...
, что, как и любая переменная, если новое значение присваиваетсяexports
, оно больше не связанный сmodule.exports
:
module.exports.hello = true; // Exported from require of module
exports = { hello: false }; // Not exported, only available in the module