添加自动升级runtime逻辑
This commit is contained in:
parent
ff45b9a028
commit
5e4dbf21f0
@ -25,12 +25,13 @@
|
|||||||
const glob = require("glob")
|
const glob = require("glob")
|
||||||
const createLogger = require("logsets")
|
const createLogger = require("logsets")
|
||||||
const path = require("path")
|
const path = require("path")
|
||||||
const { findModuleType,getCurrentPackageJson} = require("@voerkai18n/utils")
|
const { findModuleType,getCurrentPackageJson, getInstalledPackageInfo, getPackageReleaseInfo} = require("@voerkai18n/utils")
|
||||||
const { t } = require("./i18nProxy")
|
const { t } = require("./i18nProxy")
|
||||||
const fs = require("fs-extra")
|
const fs = require("fs-extra")
|
||||||
const logger = createLogger()
|
const logger = createLogger()
|
||||||
const artTemplate = require("art-template")
|
const artTemplate = require("art-template")
|
||||||
|
const semver = require("semver")
|
||||||
|
|
||||||
function normalizeCompileOptions(opts={}) {
|
function normalizeCompileOptions(opts={}) {
|
||||||
let options = Object.assign({
|
let options = Object.assign({
|
||||||
moduleType:"auto", // 指定编译后的语言文件的模块类型,取值common,cjs,esm,es
|
moduleType:"auto", // 指定编译后的语言文件的模块类型,取值common,cjs,esm,es
|
||||||
@ -63,6 +64,17 @@ function generateFormatterFile(langName,{isTypeScript,formattersFolder,templateC
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将@voerkai18n/runtime更新到最新版本
|
||||||
|
*/
|
||||||
|
async function updateRuntime(){
|
||||||
|
const curVersion = getInstalledPackageInfo("@voerkai18n/runtime").version
|
||||||
|
const latestVersion = (await getPackageReleaseInfo("@voerkai18n/runtime")).lastVersion
|
||||||
|
if(semver.gt(latestVersion, curVersion)){
|
||||||
|
await upgradePackage("@voerkai18n/runtime")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
module.exports =async function compile(langFolder,opts={}){
|
module.exports =async function compile(langFolder,opts={}){
|
||||||
const options = normalizeCompileOptions(opts);
|
const options = normalizeCompileOptions(opts);
|
||||||
|
@ -535,6 +535,20 @@ function installPackage(packageName){
|
|||||||
shelljs.exec(`npm install ${packageName}`)
|
shelljs.exec(`npm install ${packageName}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function upgradePackage(packageName){
|
||||||
|
const packageTool = getPackageTool()
|
||||||
|
try{
|
||||||
|
if(packageTool=='pnpm'){
|
||||||
|
shelljs.exec(`pnpm update ${packageName}`)
|
||||||
|
}else if(packageTool=='yarn'){
|
||||||
|
shelljs.exec(`yarn upgrade ${packageName}`)
|
||||||
|
}else{
|
||||||
|
shelljs.exec(`npm upgrade ${packageName}`)
|
||||||
|
}
|
||||||
|
}catch{
|
||||||
|
shelljs.exec(`npm upgrade ${packageName}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -716,5 +730,6 @@ module.exports = {
|
|||||||
importTranslateFunction, // 在代码中导入t函数
|
importTranslateFunction, // 在代码中导入t函数
|
||||||
asyncExecShellScript, // 异步执行一段脚本并返回结果
|
asyncExecShellScript, // 异步执行一段脚本并返回结果
|
||||||
getPackageReleaseInfo, // 从npm上读取指定包的信息
|
getPackageReleaseInfo, // 从npm上读取指定包的信息
|
||||||
getInstalledPackageInfo // 返回当前工程已安装的包信息,主要是版本号
|
getInstalledPackageInfo, // 返回当前工程已安装的包信息,主要是版本号
|
||||||
|
upgradePackage // 升级包
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user