所以现在我的项目是结构化的,以便我的服务器端代码存在于服务器文件夹中。
我已将我的javascript分解为多个文件,之前使用的是require.js。 现在,我尝试过使用
Npm.require
和
__meteor_bootstrap__.require
获取不同文件的'exports'对象,但这不起作用。
换句话说,如何在Meteor中正确使用require.js?或者是否有一些更好的方法来分解Meteor中的大型javascript文件?
答案 0 :(得分:4)
我建议您完全使用智能套件构建应用程序。从0.6.0开始,您可以在packages /
下拥有本地软件包作为最佳做法,任何特定于应用程序的程序包文件夹都将以名称空间为前缀(例如:myapp-billing)
答案 1 :(得分:2)
如果你的目标是将你的一些项目分解成可以在不同的发布周期中发布并可能与其他项目共享的模块,那么你就可以通过将它们变成require.js样式模块(如果你只是想要将一个大的.js分成多个,然后按照用户728291的建议去做。)
如果您确实创建了多个require.js样式模块,则应该完全将这些模块从Meteor项目中分离出来并将它们放入单独的目录中,例如
工作区/ /我 - 流星项目/ ......项目内容...... /可重复使用模块-1 / 的package.json 可重复使用的模块-1.js /可重复使用模块-2- 的package.json 可重复使用的模块-2.js
然后,使用npm link
在本地安装这些Npm模块,或使用npm publish
与世界共享。然后,这里讨论including Npm modules in Meteor applications
答案 2 :(得分:1)
我认为你正在努力制作一个包裹。 Here是在包中使用的Npm.require()的示例。
对于许多常见的js库,已经存在包,因此请检查atmosphere,也许您不需要编写自己的包。
您也可以将.js文件放在像this这样的目录结构中,而不需要使用Npm.require和包,如果您已经在服务器上的一个.js文件中使用了代码,这可能是最简单的。 / p>