首页 文章

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

提问于
浏览
48

我想在Meteor应用程序中添加一个JavaScript前端插件,如 jquery.center.js .

如果我把它放在我的 app/ 目录并刷新页面我得到这个错误:

您的应用程序崩溃了 . 这是最新的日志 . node.js:201 throw e; // process.nextTick错误,或第一次勾选时出现'error'事件^ ReferenceError:jQuery未定义在app / jquery.center.js:43:1 atUsers/crapthings/Desktop/app/.meteor/local/build /server/server.js:111:21在Function的Array.forEach(native) . (/Users/crapthings/Desktop/app/.meteor/local/build/server/underscore.js:76:11)/Users/crapthings/Desktop/app/.meteor/local/build/server/server.js: 97:7退出代码:1您的应用程序崩溃了 . 等待文件更改 .

4 回答

  • 12

    您正在将jquery插件javascript文件直接放在app文件夹中,以便为客户端和服务器加载javascript文件 .

    As per Meteor documentation:
    客户端从以下项目加载javascript:project / public和project / client
    服务器从以下项目加载javascript:project / public和project / server文件夹 .

    从v1.0开始,Meteor在客户端内部使用jQuery,因此您可以直接使用您的库而无需添加jQuery . 但是,建议您明确地向您的Meteor项目添加jQuery:

    meteor add jquery

    Meteor文档深入解释how JavaScript files are loaded and where static assets should go(CSS,图像) .

    另见 how to repackage an existing library for Meteor .

  • 3

    将它放在 client 文件夹中,使其仅加载到客户端,不需要服务器上的jQuery .

  • 19

    在MeterorJS 1.3.x中执行此操作的一种方法

    public\js\ 目录中添加JS文件

    enter image description here

    使用client / main.js中的$ .getScript从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. 
    
        });
    });
    
  • 38

    从Meteor 1.3开始,你可以add 3rd party JavaScript libraries to a Meteor project directly via their npm package

    meteor npm install --save moment
    

    服务器端和客户端软件包都可以不加修改地工作,因为Meteor的ES2015模块系统负责在客户端创建类似Node的环境,就像browserify或webpack一样 .

    如果npm包碰巧无法正常运行,请在Atmoshpere上查找包装器 . 气氛是Meteor官方的第三个软件包存储库,但在Meteor v1.3之后变得越来越不相关 . 它将最终成为phased out .

    历史

    在Meteor 1.3之前,你必须repackage 3rd party libraries for Meteor . 开发了一种名为Autopublish的工具来自动化该过程 . 在Meteor Development Group停止在meteor.com上提供免费托管后,Autopublish已经停止使用 .

相关问题