UNPKG

gy-roslib

Version:

gy

73 lines (65 loc) 2.13 kB
const fs = require('fs') const path = require('path') const dir = path.resolve(__dirname, '..', 'lib') const wokrerDir = path.resolve(__dirname, '..') function loadModule(name) { try { return require(name) } catch (e) { return undefined } } function copyFile(version) { const src = path.join(dir, `v${version}`) const dest = path.join(dir) const filesAndFoldersInSourceFolder = fs.readdirSync(src); fs.mkdir(dest, (err) => {}); // 遍历每个文件和文件夹并复制到目标文件夹 filesAndFoldersInSourceFolder.forEach((item) => { let fileSrc = path.join(src, item) let destSrc = path.join(dest, item) const d = fs.statSync(fileSrc); if(d.isFile()){ let content = fs.readFileSync(fileSrc, 'utf-8') try { fs.unlinkSync(destSrc) } catch (error) { } fs.writeFileSync(destSrc, content, 'utf-8') } }) } function copyWorker(fileName, version) { const src = path.join(dir, `v${version}`, fileName) const dest = path.join(wokrerDir, fileName) const filesAndFoldersInSourceFolder = fs.readdirSync(src); fs.mkdir(dest, (err) => {}); // 遍历每个文件和文件夹并复制到目标文件夹 filesAndFoldersInSourceFolder.forEach((item) => { let fileSrc = path.join(src, item) let destSrc = path.join(dest, item) const d = fs.statSync(fileSrc); if(d.isFile()){ let content = fs.readFileSync(fileSrc, 'utf-8') try { fs.unlinkSync(destSrc) } catch (error) { } fs.writeFileSync(destSrc, content, 'utf-8') } }); } function updateVue2API() { const ignoreList = ['version', 'default'] const VCA = loadModule('@vue/composition-api') if (!VCA) { console.warn('[gy-roslib] Composition API plugin is not found. Please run "npm install @vue/composition-api" to install.') return } } function switchVersion(version) { copyFile(version) copyWorker('worker', version) if (version === 2) updateVue2API() } module.exports.loadModule = loadModule module.exports.switchVersion = switchVersion