41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const sources = [
|
|
{
|
|
source: path.join(process.cwd(), 'src', 'robots.txt'),
|
|
fileName: 'robots.txt',
|
|
},
|
|
{
|
|
source: path.join(process.cwd(), 'src', 'sitemap.xml'),
|
|
fileName: 'sitemap.xml',
|
|
},
|
|
];
|
|
|
|
const distRoot = path.join(process.cwd(), 'dist');
|
|
const browserDir = path.join(distRoot, 'browser');
|
|
|
|
const targetDirectories = [distRoot, browserDir]
|
|
.filter((targetDirectory) => fs.existsSync(targetDirectory))
|
|
.filter((targetDirectory, index, list) => list.indexOf(targetDirectory) === index);
|
|
|
|
if (targetDirectories.length === 0) {
|
|
console.warn('Skipping static root file copy: dist directory not found.');
|
|
process.exit(0);
|
|
}
|
|
|
|
for (const { source, fileName } of sources) {
|
|
if (!fs.existsSync(source)) {
|
|
console.warn(`Skipping ${fileName} copy: source file not found.`);
|
|
continue;
|
|
}
|
|
|
|
for (const targetDirectory of targetDirectories) {
|
|
const targetFile = path.join(targetDirectory, fileName);
|
|
fs.copyFileSync(source, targetFile);
|
|
console.log(
|
|
`Copied ${path.relative(process.cwd(), source)} -> ${path.relative(process.cwd(), targetFile)}`,
|
|
);
|
|
}
|
|
}
|