Meteor JS main.js只接受'进口'目录而不是'客户'

时间:2016-09-23 08:37:22

标签: javascript meteor

我是Meteor的新手,我正在尝试基本的todo应用程序,但遇到了一些困难。本教程提到将文件添加到' imports',但是当我们运行meteor create时未创建此目录,我们也没有指示创建这样的目录。在任何情况下,main.js main.htmlmain.css都存储在client目录中。当我创建一个名为api的子目录并添加tasks.js并尝试在服务器端main.js中导入它时,应用程序崩溃了,因为它无法找到该文件。

/server/main.js

import { Meteor } from 'meteor/meteor';
import '../client/api/tasks.js';

Meteor.startup(() => {
  // code to run on server at startup
});

当我重新命名导演'客户'为了进口',应用程序神奇地不再崩溃,但突然之间,客户端没有呈现任何内容。服务器端main.js是否在寻找' import'好像它是一个关键字?为什么无法在'客户端中找到该文件?'

tasks.js

import { Mongo } from 'meteor/mongo';

export const Tasks = new Mongo.Collection('tasks');

enter image description here

1 个答案:

答案 0 :(得分:1)

默认情况下,Meteor应用程序会在项目目录中加载所有 JS文件,除非它位于某个特别命名的目录中。 imports目录是这些特殊目录之一 - 只有当其他文件显式import时,才会加载其中的文件。 client目录也很特殊,因为它的内容只由客户端代码加载,而不是由服务器代码加载。但是,您不需要import文件夹中的client个文件,因为它们会自动包含在Meteor中。

目前的建议是将大部分应用代码包含在ìmports目录中,并在需要时仅包含import。默认的meteor create命令不会为您创建此目录,因此您应该自己创建它。如果您阅读的教程没有告诉您创建一个,那么它应该。使用ES6 import - export系统有助于构建代码并更好地跟踪项目依赖性。

有关Meteor目录结构的更多信息,建议您阅读Meteor guide中的相关章节。还有list of special directories