在Meteor 1.5.1中使用缓冲器时找不到模块'./lib/BufferMaker'

我在meteor(版本1.5.1)中使用了一些npm包的时候遇到了一个问题,任何帮助都会很感激。

我的环境:

  • meteor1.5.1
  • 缓冲器1.2.0

我做了什么:

  1. 创build一个示例meteor应用程序。

meteor创造testing

  1. 安装缓冲器

meteornpm安装 – 保存缓冲区

  1. 通过编辑test/client/main.js main.js在Meteor应用程序中导入缓冲区 ,添加行:

从'buffermaker'导入{BufferMaker};

test/client/main.js完整内容:

 import { Template } from 'meteor/templating'; import { ReactiveVar } from 'meteor/reactive-var'; import { BufferMaker } from 'buffermaker'; import './main.html'; Template.hello.onCreated(function helloOnCreated() { // counter starts at 0 this.counter = new ReactiveVar(0); }); Template.hello.helpers({ counter() { return Template.instance().counter.get(); }, }); Template.hello.events({ 'click button'(event, instance) { // increment the counter when button is clicked instance.counter.set(instance.counter.get() + 1); }, }); 

  1. 运行Meteor应用程序

meteornpm安装

meteor

我在浏览器(Chrome)的控制台中得到了这个错误。

 modules-runtime.js?hash=8587d18…:231 Uncaught Error: Cannot find module './lib/BufferMaker' at makeMissingError (modules-runtime.js?hash=8587d18…:231) at require (modules-runtime.js?hash=8587d18…:241) at index.js (modules.js?hash=e9fc8db…:1016) at fileEvaluate (modules-runtime.js?hash=8587d18…:343) at require (modules-runtime.js?hash=8587d18…:238) at main.js (main.js:1) at fileEvaluate (modules-runtime.js?hash=8587d18…:343) at require (modules-runtime.js?hash=8587d18…:238) at app.js?hash=3f48780…:101 

你试过了吗:

 import BufferMaker from 'buffermaker'; 

一些如果不是大多数模块做一个默认的导出意味着你不需要你的导入语句中的曲线花括号

原来buffermaker以一种奇怪的方式重新输出它的主模块,所以第一步是直接导入BufferMaker来绕过它:

 import BufferMaker from 'buffermaker/lib/BufferMaker'; 

然后你会发现当你调用.make() ,它会抱怨Buffer不存在。 要获得客户端上的缓冲区,首先安装meteor-node-stubs

 $ meteor npm install --save meteor-node-stubs 

然后加载buffer模块并将其粘贴在窗口上,以便BufferMaker可以访问它

 import { Buffer } from 'buffer'; window.Buffer = Buffer; /* OR do it with require */ window.Buffer = require('buffer').Buffer;