@puerts/cli
Version:
PureTS is a quick scaffold tool, which can be used in the project.
70 lines (65 loc) • 2.18 kB
text/typescript
const System:any = CS.System;
const Puerts:any = CS.Puerts;
const UnityEngine:any = CS.UnityEngine;
// HotReload 端口号存储
((puer:any)=>{
const jsEnvs:any = Puerts.JsEnv.jsEnvs;
const debugPorts = (()=>{
let result = '';
for(let i=0,len=jsEnvs.Count; i<len; i++){
const item = jsEnvs.get_Item(i);
if(item && item.debugPort !== -1){
result += `${item.debugPort},`;
};
};
if(result.length){
result = result.slice(0,-1);
};
return result;
})();
const path = System.IO.Path.Combine(UnityEngine.Application.dataPath,'.puertsVmDebugPorts.txt');
const sw = new System.IO.StreamWriter(path);
sw.Write(debugPorts);
sw.Flush();
sw.Close();
})(global.puer);
// SourceMaps 支持
((puer:any)=>{
// 增加 path、fs 模块支持
puer.registerBuildinModule('path', {
dirname(path) {
return System.IO.Path.GetDirectoryName(path);
},
resolve(dir, url) {
url = url.replace(/\\/g, '/');
while (url.startsWith('../')) {
dir = System.IO.Path.GetDirectoryName(dir);
url = url.substr(3);
}
return System.IO.Path.Combine(dir, url);
},
});
puer.registerBuildinModule('fs', {
existsSync(path) {
return System.IO.File.Exists(path);
},
readFileSync(path) {
return System.IO.File.ReadAllText(path);
},
});
// 由于目前 puerts 版本引入 node_modules 不支持 import 方式,并且 source-map-support 扩展依赖 fs、path 模块
const sourceMapSupport = require('source-map-support');
// 处理文件关系(source-map-support) 依赖上面的文件
sourceMapSupport.install({
retrieveSourceMap:function(source){
let mapFile = source+'.map';
if (System.IO.File.Exists(mapFile)) {
return {
url: source,
map: System.IO.File.ReadAllText(mapFile)
};
};
return null;
}
});
})(global.puer);