I recently started to updgrade my repository to babel 7 & webpack 4 and i'm getting the following error on a function of mine:
SyntaxError: Unexpected token export
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
at Object.runInThisContext (vm.js:303:10)
at Module._compile (internal/modules/cjs/loader.js:657:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:20:18)
Also when building with babel I get the following warnings:
WARNING in ./server/lib/loader.js 226:16-22
"export 'lineLogger' (imported as 'logger') was not found in './logger'
@ multi ./server/lib/loader.js
here's my code:
const { createLogger, format, transports } = require('winston');
const { LOG_LEVEL: level } = require('../config')
const consoleTransport = [
new transports.Console({
level,
colorize: true
})
];
const lineLogger = createLogger({
format: format.combine(
format.colorize(),
format.timestamp(),
format.align(),
format.printf(info => {
const { timestamp, level, message, ...rest} = info;
return `${timestamp} [${level}] ${message}\n ${Object.keys(rest).length ? JSON.stringify(rest, null, 2) : ''}`
})
),
transports: consoleTransport,
exceptionHandlers: [
new transports.Console({ colorize: true })
]
});
export default {
lineLogger
}
How on earth do I export this? before I had:
exports.lineLogger = createLogger({
however this does not work anymore, then I get the error like: can't export readonly bla bla bla. I would really appreciate some help. when should I use imports & when should I use require, also when should I do module.exports or export default.