如何使npm包使用three.js没有依赖?



问题是这样的:我想创建一个npm包来为三个ejs创建过程对象。但我不知道如何在代码中链接three.js。我试图建立一个依赖,并使用类似

的东西
const THREE = require('three');
Function Example(){
return new THREE.TextureLoader()load('./textures/texture.png');
}
module.exports.Example = Example;

这可以很好地与其他构造函数,如场景和向量,但是对于TextureLoader(),它生成一个未定义文档的错误(因为没有为这个THREE定义文档)。我怀疑这不是我应该使用的架构。我看到在一些库中,加载THREE时使用如下函数:

var _loader;
myLib.install = function (libs) {
THREE = libs.THREE;
_loader = new THREE.TextureLoader();
};

所以在这种情况下,没有实际依赖于three.js,调用安装函数是必要的;因此不再需要require()功能。我想了解如何在我的代码中实现这一点。事先感谢您的帮助。

我明白了。

我在对另一个问题的回答中找到了答案。只是改变elTHREE和使用这个变量来存储3 .js库。
这样,我就可以生成一个npm包,它不会像我想的那样将Three.js作为依赖项安装。

我的代码可以在这里看到。

最新更新