问题描述
我试图不将所有内容与我正在开发的打字稿游戏捆绑在一起。通过执行以下操作,我已成功解绑 2D 游戏引擎 pixi.js
:
在 .html 中:
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/5.3.3/pixi.min.js"></script>
在编译根目录 (main.ts
)
/// <reference types="pixi.js" />
结果我已经能够删除所有
import * as PIXI from 'pixi.js'
来自单个文件的语句,并且能够从捆绑脚本(由 browserify 和 minify 创建)中减少大约 50%。
但是,当我需要一个带有默认导出的模块时,这些模块也反映在本地测试中(使用 chai
),就会出现问题,例如:
import SimplexNoise from 'simplex-noise'
我已经通过推杆验证游戏仍然可以运行
<script type="module" src="https://cdnjs.cloudflare.com/ajax/libs/simplex-noise/2.4.0/simplex-noise.js"></script>
在 html 文件中,将前面提到的 import
语句替换为
// @ts-nocheck
然而,本地测试套件依赖于存在的本地导入语句。
有没有办法既满足本地测试要求又从捆绑包中删除包?我知道我可以使用 browserify -i simplex-noise ..
手动从 browserify 中删除包,但是当我尝试此操作时,游戏停止运行,因为它尝试 require('simplex-noise')
但脚本标记会自动创建命名空间 SimplexNoise
。>
AFAIK,与 python 不同,您不能在 javascript 中执行以下操作。
if (local) {
import ...
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)