35 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * This is an IMPROVED FAKE log.js RequireJS plugin file.
 | 
						|
 * It attempts to return a mock logger object, as the real plugin likely does.
 | 
						|
 */
 | 
						|
define({
 | 
						|
    load: function (name, req, onload, config) {
 | 
						|
        // console.log("--- Using IMPROVED FAKE log plugin, processing module:", name, "---");
 | 
						|
 | 
						|
        // A real logger plugin typically returns a logger instance FOR the 'name' module.
 | 
						|
        // It does NOT usually return the module content itself.
 | 
						|
        // Let's create a fake logger object that mimics the expected methods.
 | 
						|
        const fakeLogger = {
 | 
						|
            log: function(...args) { console.log(`[FAKE LOG][${name}]`, ...args); },
 | 
						|
            info: function(...args) { console.info(`[FAKE INFO][${name}]`, ...args); },
 | 
						|
            warn: function(...args) { console.warn(`[FAKE WARN][${name}]`, ...args); },
 | 
						|
            warning: function(...args) { console.warn(`[FAKE WARNING][${name}]`, ...args); }, // 根據錯誤,這個方法是需要的
 | 
						|
            error: function(...args) { console.error(`[FAKE ERROR][${name}]`, ...args); },
 | 
						|
            // 添加其他方法,如果後續遇到 "Cannot read properties of undefined (reading 'someMethod')" 錯誤
 | 
						|
            isLoggable: function() { return true; }, // 示例
 | 
						|
            // etc.
 | 
						|
        };
 | 
						|
 | 
						|
        // console.log(`--- IMPROVED FAKE log plugin returning mock logger for "${name}". Mock logger:`, fakeLogger, "---");
 | 
						|
 | 
						|
        // 直接通過 onload 傳回這個假 logger 物件,而不是去 req([name])
 | 
						|
        onload(fakeLogger);
 | 
						|
 | 
						|
        // 不需要在這裡呼叫 req([name]),除非 log plugin 的功能是更複雜的包裝器
 | 
						|
        // 通常 logger plugin 只需要一個模組名稱,然後返回一個 logger
 | 
						|
    },
 | 
						|
    // 如果 log plugin 需要處理優化器,可能還需要 normalize 方法
 | 
						|
    // normalize: function(name, normalize) {
 | 
						|
    //     return normalize(name);
 | 
						|
    // }
 | 
						|
}); |