修复voerkai18n init时生成Voerkai18nScope的命名错误
This commit is contained in:
parent
9efffdf201
commit
7e9e4b7ed8
@ -22,14 +22,12 @@ program
|
||||
banner.add("版本号:",`${require("./package.json").version}`,{style:["","yellow"]})
|
||||
banner.render()
|
||||
})
|
||||
|
||||
|
||||
program
|
||||
.command('init')
|
||||
.argument('[location]', t('工程项目所在目录'))
|
||||
.description(t('初始化项目国际化配置'))
|
||||
.option('-D, --debug', t('输出调试信息'))
|
||||
.option('-m, --moduleType [types]', t('输出模块类型,取值auto,esm,cjs'), 'esm')
|
||||
.option('-m, --moduleType [types]', t('输出模块类型,取值auto,esm,cjs'), 'auto')
|
||||
.option('-r, --reset', t('重新生成当前项目的语言配置'))
|
||||
.option('-lngs, --languages <languages...>', t('支持的语言列表'), ['zh','en'])
|
||||
.option('-d, --defaultLanguage <name>', t('默认语言'), 'zh')
|
||||
|
@ -9,7 +9,7 @@ const fs = require("fs")
|
||||
const { t } = require("./i18nProxy")
|
||||
const createLogger = require("logsets")
|
||||
const logger = createLogger()
|
||||
const { installPackage } = require("@voerkai18n/utils")
|
||||
const { installPackage,getCurrentPackageJson } = require("@voerkai18n/utils")
|
||||
const artTemplate = require("art-template")
|
||||
|
||||
function getLanguageList(langs,defaultLanguage){
|
||||
@ -38,9 +38,51 @@ function getLanguageList(langs,defaultLanguage){
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前项目的模块类型
|
||||
*
|
||||
* 1. <package.json>.type="module"
|
||||
* 2. 当前工程的index.(js|ts)是否包含了import xx from
|
||||
* 3. 检查是否是typescript工程
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
module.exports = function(srcPath,{moduleType='cjs',isTypeScript,debug = true,languages=["zh","en"],defaultLanguage="zh",activeLanguage="zh",reset=false}={}){
|
||||
function getProjectModuleType(srcPath,isTypeScript){
|
||||
|
||||
// <package.json>.type="module"
|
||||
try{
|
||||
let packageJson = getCurrentPackageJson(srcPath)
|
||||
if(packageJson.type=="module") return "esm"
|
||||
}catch{}
|
||||
|
||||
// 检查入口文件
|
||||
const importRegex = /import\s*.*\s*from\s*(["']).*\1/gm
|
||||
const extryFiels = [
|
||||
path.join(srcPath,"index.js"),
|
||||
path.join(srcPath,"src","index.js"),
|
||||
path.join(srcPath,"main.js"),
|
||||
path.join(srcPath,"src","main.js"),
|
||||
]
|
||||
|
||||
for(let file of extryFiels){
|
||||
try{
|
||||
const source = fs.readFileSync(file)
|
||||
if(importRegex.test(source)){
|
||||
return 'esm'
|
||||
}
|
||||
}catch{}
|
||||
}
|
||||
return isTypeScript ? 'esm' : 'cjs'
|
||||
}
|
||||
|
||||
module.exports = function(srcPath,{moduleType,isTypeScript,debug = true,languages=["zh","en"],defaultLanguage="zh",activeLanguage="zh",reset=false}={}){
|
||||
let settings = {}
|
||||
// 检查当前项目的模块类型
|
||||
if(!['esm',"cjs"].includes(moduleType)){
|
||||
moduleType = getProjectModuleType(srcPath)
|
||||
}
|
||||
|
||||
let tasks = logger.tasklist("初始化VoerkaI18n工程")
|
||||
const langFolderName = "languages"
|
||||
// 查找当前项目的语言包类型路径
|
||||
|
@ -8,7 +8,7 @@
|
||||
import runtime from "@voerkai18n/runtime"
|
||||
const { translate,VoerkaI18nScope } = runtime
|
||||
{{else}}
|
||||
const { translate,i18nScope } = require("@voerkai18n/runtime")
|
||||
const { translate,VoerkaI18nScope } = require("@voerkai18n/runtime")
|
||||
{{/if}}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user