javascript - 重新包装 meteor 的 masonry 会出现错误 "ReferenceError: window is not defined "

标签 javascript meteor masonry

我想添加desandro/masonry进入我的 meteor 项目。但没有适合我的 meteor 包,所以我想创建一个。

这是package.js

'use strict';
 var packageName = 'masonryjs:masonry'; 
 Package.describe({
    name: packageName,
    summary: 'Masonryjs. cascading grid layout library',
    version: '1.1.0',
    git: 'https://github.com/desandro/masonry'
});
Package.onUse(function (api) {
    api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']);
    api.export('masonry');
    api.addFiles([
        'masonry.pkgd.js',
        'export.js'
    ]);
});

导出.js

masonry = this.masonry;
delete this.masonry;

该包已添加,但是当我运行我的 meteor 应用程序时,我收到此错误

W20150121-21:50:29.788(5.5)? (STDERR)/home/nipun/.meteor/packages/meteor-tool/.1.0.40.1d3bp9e++os.linux.x86_32+web.browser+web.cordova/meteor-tool-os.linux.x86_32/dev_bundle/服务器库/node_modules/fibres/future.js:173 W20150121-21:50:29.788(5.5)? (STDERR)抛出(前); W20150121-21:50:29.788(5.5)? (标准错误)^ W20150121-21:50:29.824(5.5)? (STDERR)ReferenceError:窗口未定义 W20150121-21:50:29.824(5.5)? (STDERR) 在 masonry (packages/masonryjs:masonry/masonry.pkgd.js:147:1) W20150121-21:50:29.824(5.5)? (STDERR)位于/home/nipun/development/web/mason/.meteor/local/build/programs/server/packages/masonryjs_masonry.js:2980:4 W20150121-21:50:29.824(5.5)? (STDERR)位于/home/nipun/development/web/mason/.meteor/local/build/programs/server/packages/masonryjs_masonry.js:3008:3 W20150121-21:50:29.824(5.5)? (STDERR)位于/home/nipun/development/web/mason/.meteor/local/build/programs/server/boot.js:205:10 W20150121-21:50:29.825(5.5)? (STDERR) at Array.forEach( native ) W20150121-21:50:29.825(5.5)? (STDERR) 位于 Function..each..forEach (/home/nipun/.meteor/packages/meteor-tool/.1.0.40.1d3bp9e++os.linux.x86_32+web.browser+ web.cordova/meteor-tool-os.linux.x86_32/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11) W20150121-21:50:29.825(5.5)? (STDERR)位于/home/nipun/development/web/mason/.meteor/local/build/programs/server/boot.js:116:5

最佳答案

如果您不希望在 window 不可用的服务器上使用此包,则:

api.addFiles([ 'masonry.pkgd.js', 'export.js' ], 'client');
api.export('masonry', 'client');

关于javascript - 重新包装 meteor 的 masonry 会出现错误 "ReferenceError: window is not defined ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28072366/

相关文章:

javascript - 如何在 Masonry js 中将元素居中?

javascript - 如何限制用户在移动字段中只能输入10个字符

javascript - 条件 ng-required 集体检查 3 个输入框不起作用

javascript - 移动设备上谷歌地图的触摸事件

javascript - 当同位素/masonry 第一次加载时,它会一起皱巴巴的,如何修复?

javascript - Angular : Infinite scroll not working when using ngInclude in masonry

javascript - 为什么 .click() 在 Android 上不起作用?

javascript - 使用 Meteor(即网络应用程序登陆页面)在 Google PageSpeed Insights 上获得 100 分

node.js - Meteor.setTimeout 不会造成延迟

javascript - MeteorJS 如何从命令提示符添加用户