#记录一下当require.context 在typescript中导出无法引入,使用node生成ts导出文件
const fs = require('fs')
const path = require('path')
const names = {}
function getNames(dir) {
const files = fs.readdirSync(dir)
files.forEach(file => {
const stat = fs.statSync(path.join(dir, file))
if (stat.isDirectory()) {
getNames(path.join(dir, file))
} else {
console.log('path.basename(file, '.js')', path.basename(file, '.js'))
if (path.basename(file, '.js') !== 'index' && path.basename(file, '.ts') !== 'index') {
names[path.basename(file, path.extname(file))] = path.join(dir, path.basename(file, path.extname(file)))
}
}
})
}
getNames('./')
const codes = []
Object.keys(names).forEach(name => {
codes.push(`import ${name} from './${names[name]}'`)
})
const exportString = `export {${Object.keys(names).join(',\n')}}`
codes.push(exportString)
fs.writeFileSync('index.ts', codes.join('\n'))