const path = require('path');
const fsExtra = require('fs-extra');
const outputDir = path.resolve(__dirname, '../../build');
const outputNuxtDir = path.resolve(__dirname, '../../build/nuxt');
exports.createNuxtPlugin = () => {
const fileStr = `import { join } from 'pathe'
import { defineNuxtModule } from '@nuxt/kit'
export default defineNuxtModule({
hooks: {
'components:dirs'(dirs) {
dirs.push({
path: join(__dirname,'./components'),
prefix:'D'
})
}
}
})`;
fsExtra.outputFile(path.resolve(outputNuxtDir, `index.js`), fileStr, 'utf-8');
};
exports.createAutoImportedComponent = (dirName) => {
const importStyle = fsExtra.pathExistsSync(path.resolve(outputDir, `${dirName}/style.css`))
? `import '../../${dirName}/style.css' \n`
: ``;
const comps = require(path.resolve(outputDir, `${dirName}/index.es.js`));
Object.keys(comps).forEach((compName) => {
if (compName !== 'default' && compName.indexOf('Directive') === -1) {
const fileStr = `${importStyle}\nexport { ${compName} as default } from '../../${dirName}/index.es.js'`;
fsExtra.outputFile(path.resolve(outputNuxtDir, `components/${compName}.js`), fileStr, 'utf-8');
}
});
};