我正在将Babylonjs与Rollupjs以及打字稿一起使用。
Babylonjs具有与软件包捆绑在一起的类型,因此当我这样导入时:
switch
我从打字稿中获得了所有的键入信息和类型检查,但是,由于(我认为) babylon.js 是如何捆绑的-汇总无法捆绑它引发错误:
1:从“ babylonjs”导入{ArcRotateCamera,Engine,SceneLoader,Vector3};
2:导入“ babylonjs-loaders”;
3:从“反应”中导入React;
错误:node_modules / babylonjs / babylon.js未导出“引擎”
要修复汇总捆绑包,我需要将导入更改为:
import { ArcRotateCamera, Engine, SceneLoader, Vector3 } from "babylonjs";
但随后我丢失了所有键入信息...
所以我最快的解决方案是以某种方式指示打字稿 babylon.d.ts 也适用于 babylonjs / es6.js 。
P.S 这些命名的导入都是正确的,并且可以正常工作,因为当我将其与@storybook(通过webpack加载)一起使用时,组件可以正常工作。
答案 0 :(得分:1)
您会注意到babylonjs
中的babylon.d.ts
模块是如何声明的:
declare module 'babylonjs' {
export = BABYLON;
}
declare module BABYLON {
// Many declarations...
}
要将相同的声明与babylonjs/es6
模块名称相关联,您要做的就是遵循相同的格式,并将模块声明添加到项目中的新文件中:
declare module 'babylonjs/es6' {
export = BABYLON;
}
(将这段代码添加到另一个模块文件中将不起作用,因为这会将其视为模块扩充而不是模块声明。)
请考虑提出一个问题,以在原始babylonjs
软件包中进行此更改。