Весь мой опыт экспорта / импорта модулей пришел в ES6 с использованием export
и import
, где вы можете сделать что-то подобное, чтобы один модуль экспортировал функцию по умолчанию, а также отдельные именованные функции.
// module.js
export default mainFunction
export { namedFunction }
// main.js
import mainFunction from 'functions'
mainFunction()
import { namedFunction } from 'function'
namedFunction()
Однако я не могу понять, как это сделать с импортом в стиле ES5, используя module.exports
и require
. Насколько я понимаю, я могу экспортировать одно значение по умолчанию:
// module.js
module.exports = function mainFunction() {}
// main.js
const mainFunction = require('module.js')
Или я могу создать именованный экспорт:
// module.js
module.exports = {
namedFunction: function() {}
}
// main.js
const namedFunction = require('module.js').namedFunction
Но я не могу сделать оба. Я думал, что мог бы назвать один из экспортов "default", как это, но он не работает
// module.js
module.exports = {
default: function() {},
namedFunction: function() {}
}
// main.js
const mainFunction = require('module.js') // does not work
const mainFunction = require('module.js').default // works, but not what I want
const namedFunction = require('module.js').namedFunction
Как я могу выполнить этот двойной экспорт по умолчанию с именами в ES5?