import { ModuleThis } from "@nuxt/types/config/module" const fs = require('fs') const path = require("path") class PluginManage { private moduleContainer: ModuleThis constructor(moduleContainer : ModuleThis){ this.moduleContainer = moduleContainer } addMainPlugin({ oldFileName = 'index.ejs', newFileName = 'plugin.js' , options= {} }){ this.moduleContainer.addPlugin({ src: path.join(__dirname , '..', ".." , 'plugins', oldFileName), fileName: path.join( 'sketon' , newFileName) , options: options, }) } addExtraDependencieTemplates( oldFolderName: string ,newFolderName : string ){ fs.readdirSync(oldFolderName).forEach( ( file : string ) => { this.moduleContainer.addTemplate({ src: path.join(oldFolderName , file), fileName: path.join(newFolderName , file ) }) }); } addExtraModules(){ // let modules = ['@nuxtjs/style-resources'] // if(this.moduleContainer.nuxt.options.useI18n){ // modules.push('@nuxtjs/i18n') // } // try { // modules.forEach( module => { // this.moduleContainer.nuxt.resolver.requireModule( module) // }) // } catch (error) { // throw new Error(error) // } this.moduleContainer.addModule('@nuxtjs/i18n') } } export default PluginManage