如何将第三方JavaScript库添加到Meteor应用程序?

49
我想在Meteor应用程序中添加一个JavaScript前端插件,例如jquery.center.js。如果我将它放在我的app/目录下并刷新页面,就会出现“jQuery未定义”的错误。

1
自Meteor v1.3以来,事情(和正确答案)发生了相当彻底的变化。 - Dan Dascalescu
4个回答

38

你正在将jquery插件的javascript文件直接放在app文件夹中,这样javascript文件将会被客户端和服务器加载。

根据Meteor文档:
客户端从以下位置加载javascript文件:project/public和project/client
服务器从以下位置加载javascript文件:project/public和project/server文件夹。

自v1.0起,Meteor在客户端内部使用jQuery,因此您可以直接使用您的库而无需添加jQuery。但是,建议您在Meteor项目中显式添加jQuery:

meteor add jquery

Meteor文档详细解释了如何加载JavaScript文件以及静态资源应该放在哪里(CSS,图像)。

另请参阅如何为Meteor重新打包现有库


资产(CSS,图像等)怎么办?你把它们放在哪里? - Oscar Saraza
CSS和图像应该放在项目根目录下的“public”目录中。更多信息请参见:我应该把我的文件放在哪里? - Julien Le Coupanec

19
将其放在client文件夹中,以便仅在客户端加载,服务器上不需要jQuery。

13

在 MeteorJS 1.3.x 中实现此功能的一种方法是:

将 JS 文件添加到 public\js\ 目录中。

enter image description here

使用 $.getScript 在客户端的 client/main.js 文件中从 Meteor.startup 方法加载它。如果您想控制脚本的加载顺序,请针对每个 JS 文件使用多个 $.getScript 进行控制。

enter image description here

Meteor.startup(function(){
    $.getScript('js/fhir-client.js', function(){
        // script should be loaded and do something with it. 

    });
});

如果第三方库在npm上,最好从npm中添加它 - Dan Dascalescu

3
从Meteor 1.3开始,你可以通过npm包直接将第三方JavaScript库添加到Meteor项目中:使用npm包管理器
meteor npm install --save moment

由于Meteor的ES2015模块系统会创建一个类似于browserify或webpack的Node-like环境,因此不需要修改便可在服务器端和客户端上使用包。

如果npm包不能正常工作,请在Atmoshpere中查找包装器。 Atmosphere是Meteor官方的第三方包存储库,但在Meteor v1.3之后逐渐变得不那么重要。 它最终将被淘汰

历史

在Meteor 1.3之前,您必须重新打包第三方库以供Meteor使用。开发了一个名为Autopublish的工具以自动化该过程。 Meteor Development Group停止在meteor.com上提供免费托管后,Autopublish已停止使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接