我想将一个JavaScript前端插件(如jquery.center.js
)添加到Meteor应用程序中。
如果我将它放在我的app/
目录中并刷新页面,我会收到此错误:
您的应用崩溃了。这是最新的日志。
的node.js:201
扔掉; // process.nextTick错误,或第一次打勾时的'错误'事件 ^
ReferenceError:jQuery未定义
在app / jquery.center.js:43:1
at /Users/crapthings/Desktop/app/.meteor/local/build/server/server.js:111:21
在Array.forEach(native)
在功能。 (/Users/crapthings/Desktop/app/.meteor/local/build/server/underscore.js:76:11)
at /Users/crapthings/Desktop/app/.meteor/local/build/server/server.js:97:7
退出代码:1
您的应用程序崩溃了。等待文件更改。
答案 0 :(得分:38)
您正在将jquery插件javascript文件直接放在app文件夹中,以便为客户端和服务器加载javascript文件。
根据Meteor文档:
客户端从以下项目加载javascript:project / public和project / client
服务器从以下项目加载javascript:project / public和project / server folders。
从v1.0开始,Meteor在客户端内部使用jQuery,因此您可以直接使用您的库而无需添加jQuery。但是,建议您明确地向您的Meteor项目添加jQuery:
meteor add jquery
Meteor文档深入解释how JavaScript files are loaded and where static assets should go(CSS,图像)。
答案 1 :(得分:19)
将它放在client
文件夹中,使其仅加载到客户端,不需要服务器上的jQuery。
答案 2 :(得分:12)
在MeterorJS 1.3.x中执行此操作的一种方法
在public\js\
目录
使用client / main.js中的$ .getScript从Meteor.startup方法加载它 如果要控制脚本加载顺序,请为每个js文件控制多个$ .getScript。
Meteor.startup(function(){
$.getScript('js/fhir-client.js', function(){
// script should be loaded and do something with it.
});
});
答案 3 :(得分:3)
从Meteor 1.3开始,您可以add 3rd party JavaScript libraries to a Meteor project directly via their npm package:
meteor npm install --save moment
服务器端和客户端软件包都无需修改,因为Meteor的ES2015模块系统负责在客户端创建类似于节点的环境,就像浏览器化或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已停止使用。