【发布时间】:2015-06-04 17:01:51
【问题描述】:
我最近发现了 Meteor,我正在努力在一个新的 Meteor 项目中使用 ES6 类和导入。我想要做的是拥有一个复杂的类结构,这些方法从 Meteor 事件/方法/帮助程序中调用。我已经通过编写命令$ meteor add grigio:babel 将 Babel.js 添加到项目中,并且它可以正常工作。
我想要实现的示例:
在 server/models/article.js 中:
class Article {
static all() {
//returns all articles from db
}
}
在服务器/方法/articles.js 中:
Meteor.methods({
allArticles: {
Article.all();
}
})
仅在方法文件中引发ReferenceError: Article is not defined,这就足够了。所以我有三个选择:将所有类写入一个文件,将所有类附加到一个全局对象或使用像 Browserify 这样的良好模块系统。显然,第三种选择更好。
但是我该如何使用它呢? Babel 默认将export、import 转换为Browserify,Meteor 在页面刷新时会引发require is not defined 错误。在谷歌搜索问题后,我没有找到关于如何将 Browserify 添加到 Meteor 的明确解决方案。我是否应该向 Meteor 添加一个 npm 包支持,添加一个 browserify 的 npm 包并在我导入/导出任何内容的每个页面上手动将其添加到 Meteor?还是我应该使用完全不同的方法? Meteor 通常如何处理此任务?谢谢!
【问题讨论】:
-
对于任何包含 es6 ECMAScript 2015 代码的文件,使用 .es6 扩展名而不是 .js。这为我修复了一个类似的 ReferenceError。如果它适合您,我会添加此评论作为答案。
标签: javascript meteor module browserify ecmascript-6