【发布时间】:2015-03-13 15:52:28
【问题描述】:
我有一个使用 coffeescript 的 Meteor 项目。
我不确定发生了什么,但我的解决方案突然出现此错误。
ReferenceError: share is not defined
at app/models/Models.js:3:3
当我尝试启动我的解决方案时。
无论我在哪里使用 Meteor coffeescript 共享变量,它都会生成此错误。
我正在使用 WebStorm,并且我有一个 FileWatcher 可以将 coffeescript 转换为 javascript。当我打开它时(我需要能够在 WebStorm 中进行调试),它会为我的 .coffee 文件生成 .js 和 .map 文件。
因此,不知何故,这些生成的 JS 文件没有引用咖啡脚本在 Meteor 中使用的共享变量来拥有全局变量。
我尝试删除 .idea 目录和 .meteor 目录,我尝试添加和删除流星咖啡脚本包。我什至尝试创建一个新的解决方案 - 我仍然遇到同样的问题。
我似乎无法修复它,以便在打开文件观察器时不会出现错误。
这个错误的根源是什么?我可以做些什么来解决它?
【问题讨论】:
-
为什么您要使用来自 webstorm 的
FileWatcher为您的咖啡文件从coffee生成js?这可以通过coffeescriptmeteor package 完成 -
@ajduke - 你必须这样做才能让 webstorm 能够调试
-
自己没有检查这个,但是这个问题可能是在转译coffeescript时将生成的js代码包装在匿名函数中引起的(这使得全局函数不可用)。这是默认的 coffeescript 编译器行为。尝试在文件观察器中将“-bare”选项传递给它(相应地修改参数字段,例如 --bare --map --compile $FileName$) - 有帮助吗?
-
@lena - 不错的建议,但没有,没有任何区别。但我认为这基本上是 webstorm 咖啡脚本文件观察器的一个错误 - 不会对其进行转换,以便流星能够使用共享变量
-
不是错误 - 缺少功能。而不是在 WebStorm 中,而是在标准的咖啡脚本编译器中
标签: meteor coffeescript webstorm