ES6 导出全局符号



>我正在定义一个文件,其中我有全局资源

import winston from 'winston';
const LOGGER_KEY = Symbol.for('loggerKey');
const globalSymbols = Object.getOwnPropertySymbols(global);
const hasLogger = (globalSymbols.indexOf(LOGGER_KEY) > -1);
if (!hasLogger) {
const formatter = winston.format.combine(
winston.format.colorize(),
winston.format.timestamp(),
winston.format.align(),
winston.format.printf(
info => `${info.timestamp} ${info.level}: ${info.message}`,
),
);
const transportConsole = new (winston.transports.Console)({
format: formatter,
level: 'info',
});
const logger = winston.createLogger({
transports: [
transportConsole,
],
});
global[LOGGER_KEY] = logger;
};
export {
global[LOGGER_KEY] as logger
}

}

在 ES5 中,我曾经像这样导出并且它有效

module.exports = {
logger: global[LOGGER_KEY],
}

但如果这在 ES6 中可能,我不知道

你不能用 ES6 这样做,但这可以通过先将对象属性分配给变量来轻松解决:

const logger = global[LOGGER_KEY];
export {logger}

最新更新