我有兴趣为优秀的three.js 3D 库制作一个智能包。它基本上由数百个不同的 JavaScript 文件组成——其中只有几个可能用于一个简单的应用程序。
AFAIK,一个智能包使用回调中的add_files
方法将其 JavaScript 文件推送到客户端。Package.on_use
如果我要将整个库捆绑在一个智能包中,客户端是否有任何方法可以指定任何给定项目所需的组件,或者我基本上必须为所需组件的每个可能排列设置一个单独的智能包?
好吧,Meteorite 和智能包 API 都不会直接支持这个 AFAIK。
这里有三个选项:
如果这是供其他用户使用的,您可以在某处为用户组装一个包的页面(查看 Boost 在他们的网站上做了什么)。
只是不要使用智能包。将所有 JavaScript 文件放在您的公共目录中,并使用 jquery 单独下载它们。
您可以将 three.js 项目拆分为多个智能包,在packages
目录中放置一个虚拟包,并使用该api.use(...)
功能包含您需要的每个组件。
请记住,three.js 已经在大气上,如果您想到以下想法,您应该避免将数百个相互关联的微小子包放在大气上。
从技术上讲add_files
,是在运行服务器或部署之前添加文件以放入包中,它不会直接将文件发送到客户端。