我想在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 回答
您正在将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文档深入解释how JavaScript files are loaded and where static assets should go(CSS,图像) .
另见 how to repackage an existing library for Meteor .
将它放在
client
文件夹中,使其仅加载到客户端,不需要服务器上的jQuery .在MeterorJS 1.3.x中执行此操作的一种方法
在
public\js\
目录中添加JS文件使用client / main.js中的$ .getScript从Meteor.startup方法加载它如果要控制脚本加载顺序,请为每个js文件控制多个$ .getScript .
从Meteor 1.3开始,你可以add 3rd party JavaScript libraries to a Meteor project directly via their npm package:
服务器端和客户端软件包都可以不加修改地工作,因为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已经停止使用 .