gpt4 book ai didi

node.js - 在 Node 中导入扩展模块

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:50 24 4
gpt4 key购买 nike

我有一个 Node.js Angular 应用程序,我正在尝试将 babylon.js 导入其中。

当前设置

1) npm install --save babylonjs将 npm 存储库安装到我项目的 Node 模块中。

The following image depicts the folder structure of the npm repo. enter image description here

2) 在我的角度组件中,我从 babylon.module.d.ts 导入 BABYLON 声明和 babylon.max.js上图中的文件就是这样。

import * as BABYLON from 'babylon.js'

Babylonjs now works great, has typings enabled and everything, so I can use BABYLON as pictured below enter image description here

问题

所有包含的扩展都没有连接。这些扩展位于以下文件夹中

(Full folder structure is in the first image. I left the gui folder open since that is the specific extension I am >trying to activate at this time)

enter image description here

babylon.module.d.ts文件定义 BABYLON 如下:

declare module BABYLON { //class types are defined in here }

gui 扩展(所有其他扩展遵循相同的逻辑)声明自己是 BABYLON 的一部分,如下所示:

declare module BABYLON.GUI { //extend classes & create new classes in here in here }

尝试过的解决方案

1) babylon.gui.d.ts 声明 BABYLON.GUI所以我只是尝试了以下

import * as BABYLON from 'babylonjs';
import * as BABYLON.GUI from 'babylonjs/dist/preview release/gui/babylon.gui';

这会生成以下 Typescript 错误:Duplicate identifier 'BABYLON' ,然而,这并不奇怪,BABYLON.GUI is how the babylon.gui.d.ts` 文件声明了它的部分。

2) 使用 index.html 文件中的 CDN。这可行,但是,类型将不起作用。即使我可以打字,使用 CDN 的性能也会降低。资源将加载到文档中 <head>每一页。对于导入,只有在组件处于事件状态时才会查询资源。

3) 附加babylon.gui.d.ts文件到 babylon.module.d.ts文件。 BABYLON.GUI` 仍未定义。

Modifications to the npm repo are undesireable anyways, since any npm updates, or installs will overwrite the changes.

4) 我与 BABYLON 开发人员交谈过 here ,我们有点走进了死胡同。

有人对如何正确导入此扩展有任何意见吗?

附言。一旦我们得到这个答案,我将与开发人员合作,为所有希望将 babylon.js 合并到他们的项目中的 Node 用户实现无缝体验!

最佳答案

我与首席开发人员 deltakosh 谈过这个问题。

清除一些东西:

  1. 这个问题不是 npm
  2. 这个问题与 Node 无关
  3. 这个问题与 Babylon 的结构有关
  4. 开发人员正在积极重构以支持上述问题中所需的导入行为。

如果有人好奇here is the link到 github 上与此问题相关的公开问题。

在使用 Babylon 期间,我正在处理对导入包的导入支持,我做了以下工作:

对所有 babylon 库使用 CDN

要摆脱 typescript 编译问题,请在 .ts 文件的顶部声明以下内容,在此期间我们不会有任何打字优势。

如果您找到了更优雅的临时解决方案,请随时提出意见!

关于node.js - 在 Node 中导入扩展模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45227188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com