二七王:逻辑文件补双运行时守卫,解锁 Node 单测
按 dev-guide 01 §1「一套代码,两个运行时」补齐 erqiwang 缺失的守卫(此前只支持友乐全局加载模型):
- 顶部:跨模块依赖走 `if (typeof require!=='undefined') var X=require('./class.X.js')`
(config/pai/arith 无跨模块依赖;paiju 依赖 arith/config/pai;desk 依赖 paiju;export 依赖 arith/config/desk)
- 底部:`if (typeof module!=='undefined') module.exports = cls_X`
- export/import 的平台接线 `youle_erqiwang.X=...` 加 `typeof youle_erqiwang` 守卫,Node 无此全局时跳过
纯增量:友乐无 require(浏览器模型),守卫全部跳过、全局名仍无条件暴露,线上行为不变;
仅在 Node 下额外启用 require/module.exports,从而可用 node 直接单测。min_*/youle_erqiwang 等平台全局仍按全局名引用(Node 侧由测试 shim 提供)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1281,3 +1281,8 @@ var cls_youle_erqiwang_arith = cls_youle_erqiwang_arith || {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Node 导出;友乐/浏览器无 module 时跳过(dev-guide 01 §1)。min_ary_include/min_ary_deduct 为平台全局,两运行时按全局名引用
|
||||||
|
if (typeof module !== "undefined"){
|
||||||
|
module.exports = cls_youle_erqiwang_arith;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,3 +45,8 @@ var cls_youle_erqiwang_config = cls_youle_erqiwang_config || {
|
|||||||
return cfg;
|
return cfg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Node(本地/单元测试)导出;友乐/浏览器无 module 时跳过,按全局名引用(dev-guide 01 §1)
|
||||||
|
if (typeof module !== "undefined"){
|
||||||
|
module.exports = cls_youle_erqiwang_config;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
///////////////////////////////////////////////////
|
///////////////////////////////////////////////////
|
||||||
////////// cls_youle_erqiwang_desk: 牌桌 //////////
|
////////// cls_youle_erqiwang_desk: 牌桌 //////////
|
||||||
///////////////////////////////////////////////////
|
///////////////////////////////////////////////////
|
||||||
|
//跨模块依赖:Node 走 require 守卫;友乐/浏览器由 min_loadJsFile 加载为同名全局(dev-guide 01 §1)
|
||||||
|
if (typeof require !== "undefined"){
|
||||||
|
var cls_youle_erqiwang_paiju = require("./class.paiju.js");
|
||||||
|
}
|
||||||
|
|
||||||
var cls_youle_erqiwang_desk = cls_youle_erqiwang_desk || {
|
var cls_youle_erqiwang_desk = cls_youle_erqiwang_desk || {
|
||||||
|
|
||||||
countdown_jiaofen: 15, //叫分倒计时
|
countdown_jiaofen: 15, //叫分倒计时
|
||||||
@@ -183,3 +188,8 @@ var cls_youle_erqiwang_desk = cls_youle_erqiwang_desk || {
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Node 导出;友乐/浏览器无 module 时跳过(dev-guide 01 §1)。SendPack/youle_erqiwang.* 为平台全局
|
||||||
|
if (typeof module !== "undefined"){
|
||||||
|
module.exports = cls_youle_erqiwang_desk;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
///////////////////////////////////////////////////
|
///////////////////////////////////////////////////
|
||||||
/////// cls_youle_erqiwang_export: 输出接口 ///////
|
/////// cls_youle_erqiwang_export: 输出接口 ///////
|
||||||
///////////////////////////////////////////////////
|
///////////////////////////////////////////////////
|
||||||
|
//跨模块依赖:Node 走 require 守卫;友乐/浏览器由 min_loadJsFile 加载为同名全局(dev-guide 01 §1)
|
||||||
|
if (typeof require !== "undefined"){
|
||||||
|
var cls_youle_erqiwang_config = require("./class.config.js");
|
||||||
|
var cls_youle_erqiwang_arith = require("./class.arith.js");
|
||||||
|
var cls_youle_erqiwang_desk = require("./class.desk.js");
|
||||||
|
}
|
||||||
|
|
||||||
var cls_youle_erqiwang_export = cls_youle_erqiwang_export || {
|
var cls_youle_erqiwang_export = cls_youle_erqiwang_export || {
|
||||||
|
|
||||||
new: function() {
|
new: function() {
|
||||||
@@ -206,5 +213,12 @@ var cls_youle_erqiwang_export = cls_youle_erqiwang_export || {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//对内输出接口
|
//对内输出接口(友乐/浏览器:youle_erqiwang 由 mod.js 先建;Node 单测无此全局时跳过)
|
||||||
youle_erqiwang.export = cls_youle_erqiwang_export.new();
|
if (typeof youle_erqiwang !== "undefined"){
|
||||||
|
youle_erqiwang.export = cls_youle_erqiwang_export.new();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Node 导出;友乐/浏览器无 module 时跳过(dev-guide 01 §1)
|
||||||
|
if (typeof module !== "undefined"){
|
||||||
|
module.exports = cls_youle_erqiwang_export;
|
||||||
|
}
|
||||||
@@ -26,5 +26,12 @@ var cls_youle_erqiwang_import = cls_youle_erqiwang_import || {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 输入接口
|
// 输入接口(友乐/浏览器:youle_erqiwang 由 mod.js 先建;Node 单测无此全局时跳过)
|
||||||
youle_erqiwang.import = cls_youle_erqiwang_import.new();
|
if (typeof youle_erqiwang !== "undefined"){
|
||||||
|
youle_erqiwang.import = cls_youle_erqiwang_import.new();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Node 导出;友乐/浏览器无 module 时跳过(dev-guide 01 §1)。youle_erqiwang.app 为平台全局
|
||||||
|
if (typeof module !== "undefined"){
|
||||||
|
module.exports = cls_youle_erqiwang_import;
|
||||||
|
}
|
||||||
@@ -59,3 +59,8 @@ var cls_youle_erqiwang_pai = cls_youle_erqiwang_pai || {
|
|||||||
return pai;
|
return pai;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Node 导出;友乐/浏览器无 module 时跳过(dev-guide 01 §1)
|
||||||
|
if (typeof module !== "undefined"){
|
||||||
|
module.exports = cls_youle_erqiwang_pai;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
///////////////////////////////////////////////////
|
///////////////////////////////////////////////////
|
||||||
////////// cls_youle_erqiwang_paiju: 牌局 /////////
|
////////// cls_youle_erqiwang_paiju: 牌局 /////////
|
||||||
///////////////////////////////////////////////////
|
///////////////////////////////////////////////////
|
||||||
|
//跨模块依赖:Node 走 require 守卫;友乐/浏览器无 require,由 min_loadJsFile 加载为同名全局(dev-guide 01 §1)
|
||||||
|
if (typeof require !== "undefined"){
|
||||||
|
var cls_youle_erqiwang_arith = require("./class.arith.js");
|
||||||
|
var cls_youle_erqiwang_config = require("./class.config.js");
|
||||||
|
var cls_youle_erqiwang_pai = require("./class.pai.js");
|
||||||
|
}
|
||||||
|
|
||||||
var cls_youle_erqiwang_paiju = cls_youle_erqiwang_paiju || {
|
var cls_youle_erqiwang_paiju = cls_youle_erqiwang_paiju || {
|
||||||
|
|
||||||
new: function(o_desk, firstseat) {
|
new: function(o_desk, firstseat) {
|
||||||
@@ -914,3 +921,8 @@ var cls_youle_erqiwang_paiju = cls_youle_erqiwang_paiju || {
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Node 导出;友乐/浏览器无 module 时跳过(dev-guide 01 §1)。min_random/min_now/min_ontimeout、youle_erqiwang.import 为平台全局
|
||||||
|
if (typeof module !== "undefined"){
|
||||||
|
module.exports = cls_youle_erqiwang_paiju;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user