gy-roslib
Version:
gy
73 lines (65 loc) • 2.13 kB
JavaScript
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