代码 > typescript的条件编译

2025-06-07

最近在搞typescript同时编译到js和lua。有部分系统函数,比如获取unix时间戳,在js和lua由不同的系统函数获取。

所以必须引入类似条件编译的机制。

最后实现的方式是这样的:

 

1.建立不同的tsconfig,设置paths,指定平台依赖库在不同的目录下

    "paths": {

      "@include/*": [

        "include/*"

      ],

    },

   

"paths": {

      "@include/*": [

        "include.lua/*"

      ],

    },

 

2.js因为用webpack打包,在webpack.config.js的resolve里添加alias,大概为

    resolve: {

        alias:{

            "@include/*": path.resolve(__dirname, 'include/*'),

        },

        extensions: [".ts", ".tsx", ".js"],

    },

3.里为了防止ts报错,安装并引入对应的types

    "types": ["lua-types/5.1"],

4.代码中进行引用申明

/// <reference types="lua-types/5.1" />

 

点击登录