Кто-нибудь знает, как это сделать лучше?
Цель: импортировать, использовать и экспортировать createLogger из одного файла (точка входа в приложение).
WebStorm выдает предупреждение о дублировании объявления.
import createLogger from './logger';
const logger = createLogger('namespace');
export { default as createLogger };
export { * as plugins } from './plugins';
export setup = () => {
// ...
logger.log('');
}
export start = async () => {
// ...
logger.log('');
}
@Shane Чего именно вы пытаетесь достичь? возможно, есть другой вариант, потому что это кажется странным ...
Это связано со структурой проекта. Это точка входа. И есть несколько экспортируемых функций, которым требуется экземпляр регистратора.
Я добавлю немного больше к примеру
Хорошо, пример обновлен.
вам по-прежнему не нужно экспортировать его, другие места, где нужен createLogger, могут импортировать его из исходного файла регистратора
Технически да, но это для библиотеки, поэтому мы хотим, чтобы все можно было импортировать из одного оператора. импортировать {setup, start, createLogger} из 'библиотеки';
Понятно, так что вы можете просто сделать export createLogger, я предполагаю? почему дефолт? если это по умолчанию, импорт будет import createLogger, { setup, etc.. } from library Кроме того, синтаксис может быть неправильным, возможно, это должен быть export { createLogger as default }, а не наоборот - поцарапайте это, синтаксис правильный
взгляните на это: stackoverflow.com/questions/35665759/… выглядит так, как будто это export { default as createLogger } from '...';, или вы могли бы просто сделать export default createLogger;
@ShaneDaugherty Помогли ли вам какие-либо ответы? Если вам нужна дополнительная информация, мы готовы помочь!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Чтобы экспортировать несколько функций из одного файла, просто сделайте следующее:
import createLogger from './logger';
const logger = createLogger('namespace');
import plugins from './plugins';
import anotherLib from './anotherLib';
const setup = () => {
// ...
logger.log('');
}
const start = async () => {
// ...
logger.log('');
}
// export everything without default
export { plugins,
createLogger,
anotherLib,
setup,
start}
После этого вы можете импортировать их в другой файл.
Вот песочница, чтобы увидеть, как это работает.
Взгляните на эта документация о выражении экспорта.
Это просто круто.
почему вы хотите импортировать и экспортировать? ты даже не модифицируешь это