Запускать как-то так:
$ gjs "/islands'" -l --nocolor | xargs ./fix-imports.js
#!/usr/bin/env node | |
/* eslint no-console: 0 */ | |
const fs = require('fs'); | |
for (let i = 2; i < process.argv.length; i++) { | |
const filename = process.argv[i]; | |
if (filename === process.argv[1]) { | |
continue; | |
} | |
fixFilename(filename); | |
} | |
function fixFilename(filename) { | |
let content = fs.readFileSync(filename, 'utf-8'); | |
content = content.replace(/^const\s*{\s*(.*?)\s*}\s*=\s*require\('auto-core\/react\/components\/islands'\);$/gm, function(_, components) { | |
if (components.indexOf(':') !== -1) { | |
console.error(`Skipping ${ filename }`); | |
return _; | |
} | |
return components.split(/\s*,\s*/g) | |
.map(function(name) { | |
name = name.trim(); | |
if (!name) { | |
return null; | |
} | |
return `const ${ name } = require('auto-core/react/components/islands/${ name }');`; | |
}) | |
.filter(Boolean) | |
.join('\n'); | |
}); | |
fs.writeFileSync(filename, content, 'utf-8'); | |
} |
gjs
— это у меня вот такое. Наверное,find
тоже сработает