@honor-minigame/cli
Version:
honor minigame pack cli
115 lines (103 loc) • 3.27 kB
JavaScript
// 相对路径处理
global.__qgRequire = require
global.__vivoRequire = require
// 微信环境GameGlobal相当于global
Object.defineProperty(global, 'GameGlobal', {
get () {
return global
},
set (newValue) {
console.warn('微信环境下GameGlobal相当于global,不需要自定义修改')
}
})
require('./wxadapter/weixin-qg-adapter.js')
// 引擎插件替换
global.wx.requirePlugin = (path, pluginEnv) => {
// 设置pluginEnv环境
if (pluginEnv) {
global.pluginEnv = pluginEnv
}
console.warn(`---wx.requirePlugin ${path}`, pluginEnv)
// 普通引擎插件适配,将本地引擎插件代码转为正常require引用
if (global._plugin_name_) {
// 加载引擎插件名称的入口js文件
try {
if (global._plugin_name_ === path) {
const pluginJsonPath = '/' + global._plugin_name_ + '/plugin.json'
const result = global.qg.getFileSystemManager().readFileSync(pluginJsonPath, 'utf8')
const pluginJson = JSON.parse(result)
let mainJs = pluginJson.main
if (!mainJs) {
mainJs = 'index.js'
}
let pluginMainJs = '/' + global._plugin_name_ + '/' + mainJs
if (!pluginMainJs.endsWith('.js')) {
pluginMainJs += '.js'
}
return require('.' + pluginMainJs)
}
} catch (err) {}
// 其他js文件加载
if (!path.startsWith('/')) {
path = '/' + path
}
if (!path.includes(global._plugin_name_)) {
path = '/' + global._plugin_name_ + path
}
if (!path.endsWith('.js')) {
path += '.js'
}
}
// unityPlugin适配
if (path === 'UnityPlugin') {
try {
Object.defineProperty(global, 'managerConfig', {
get () {
return this._managerConfig
},
set (newValue) {
this._managerConfig = newValue
if (newValue && newValue.loadingPageConfig && newValue.loadingPageConfig.materialConfig && newValue.loadingPageConfig.materialConfig.backgroundImage) {
console.log(newValue.loadingPageConfig)
if (window.qg.createCustomizeLoading) {
window._loading = window.qg.createCustomizeLoading({
background: newValue.loadingPageConfig.materialConfig.backgroundImage
})
}
}
}
})
Object.defineProperty(global, 'manager', {
get () {
return this._manager
},
set (newValue) {
if (newValue && newValue.hideLoadingPage) {
newValue._hideLoadingPage = newValue.hideLoadingPage
newValue.hideLoadingPage = () => {
console.log('hideLoadingPage...')
if (window._loading) {
window._loading.remove()
}
if (this._hideLoadingPage) {
this._hideLoadingPage()
}
}
}
this._manager = newValue
}
})
console.warn('微信Unity小游戏转换,不需要去修改unityNamespace及Module~')
} catch (e) {
console.error(e)
}
return require('WxUnityPlugin.js')
}
if (!path.startsWith('/')) {
path = '/' + path
}
if (!path.endsWith('.js')) {
path += '.js'
}
return require('.' + path)
}