ts-node一句话加载嵌入式数据库Realm let db: { open - Assbbs

ts-node一句话加载嵌入式数据库Realm let db: { open: any }, DB = async => { if typeof db === 'undefined' { db = await import !process Symbol.for "ts-node.register.instance" && 'win32…

ts-node一句话加载嵌入式数据库Realm let db: { open: any }, DB = async => { if typeof db === 'undefined' { db = await import !process Symbol.for "ts-node.register.instance" && 'win32', 'win64' .includes process.platform ? 'file://' : '' + process.env.APPDATA + '/npm/node modules/realm/lib/index.js' ; } return db; } 为了防止前端傻屌把模块装进./node modules,所以强行npm install -g realm,然后用环境变量动态import。 因为兼容Windows所以加前缀file://,整个函数封装成一个Promise对象。 使用时可以先初始化再调用全局变量db(用到的方法在let声明): // 可以这么用 await DB ; db.open ; // 也可以这么用 await DB .open ; 因为DB 方法检测了db是否已被实例化,所以即便调用多次await DB 也只会分配一次db对象,节省内存。 至于为啥DB也用let声明而不是const,因为javascript是动态语言,const只是个语法糖。 内存分配上跟let没区别,而且是个伪静态声明,还多一道检测重复声明,更慢。 只是个思路还有很多问题,TS这玩意太逆天了……