如何正确导入我的集合定义?

时间:2016-11-09 15:11:10

标签: meteor collections import

如何正确导入我的收藏定义? 尝试导入时,我收到此错误消息

The displayed error message

我将我的集合定义从myMeteorApp.js主文件中外部化: (我的目录结构如下所示:)

/myMeteorApp
/myMeteorApp.js 

...到tasks.js文件: (我的目录结构目前如下所示:)

/myMeteorApp
--/imports/api/tasks.js 

tasks.js的内容如下所示:

import { Mongo } from "meteor/mongo";

const Images = new FS.Collection("images", {
stores: [new FS.Store.FileSystem("images", {path: "~/uploads"})]
});

const buyList = new Mongo.Collection("BuyList");
const WhoAreWe = new Mongo.Collection("whoDb");
const merchantReviews = new Mongo.Collection("MerchantReviews");
const Messages = new Meteor.Collection("messages", {transform:     function (doc) { doc.buyListObj = buyList.find({sessionIDz: {$in: [doc.buyList]}}); return doc; }});

export { Images };
export { buyList };
export { WhoAreWe };
export { merchantReviews };
export { Messages };

我安装了babel-preset-es2015和ecmascript软件包,但这些都没有帮助。

期待您的帮助......

1 个答案:

答案 0 :(得分:1)

我们所有的聊天会话都表明您的原始应用使用的Meteor 1.2不支持ES2015模块。此外,您没有正确import

以下是import相关问题的简短清单:

  1. 确保您的项目实际上使用的是Meteor v1.3 +(运行meteor --version)。早期版本不支持模块功能。
  2. 确保您已安装ecmascript软件包(从项目的根目录运行meteor listcat .meteor/packages | grep ecmascript。如果没有,请meteor add ecmascript。这是用于编译ES2015的包。
  3. 确保您是using it correctly。出口有两种类型:

    • 默认 - import foo from 'imports/bar'export default bar一起使用。
    • 命名 - import { foo } from 'imports/bar'export const foo = ...等一起使用。