我是Meteor的新手,我正在尝试基本的todo应用程序,但遇到了一些困难。本教程提到将文件添加到' imports',但是当我们运行meteor create
时未创建此目录,我们也没有指示创建这样的目录。在任何情况下,main.js
main.html
和main.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');
答案 0 :(得分:1)
默认情况下,Meteor应用程序会在项目目录中加载所有 JS文件,除非它位于某个特别命名的目录中。 imports
目录是这些特殊目录之一 - 只有当其他文件显式import
时,才会加载其中的文件。 client
目录也很特殊,因为它的内容只由客户端代码加载,而不是由服务器代码加载。但是,您不需要import
文件夹中的client
个文件,因为它们会自动包含在Meteor中。
目前的建议是将大部分应用代码包含在ìmports
目录中,并在需要时仅包含import
。默认的meteor create
命令不会为您创建此目录,因此您应该自己创建它。如果您阅读的教程没有告诉您创建一个,那么它应该。使用ES6 import
- export
系统有助于构建代码并更好地跟踪项目依赖性。
有关Meteor目录结构的更多信息,建议您阅读Meteor guide中的相关章节。还有list of special directories。