因此,我想构建一个在Meteor运行时环境内外工作的Meteor Smart Package。基本上,当在Meteor外部运行时,库将具有较少(或替代)功能。换句话说,我的代码会包含它:
if (typeof Meteor !== 'undefined') {
// Meteor specific functionality
}
因为我正在开发这个库作为Meteor的智能包,我依赖于Meteor的包构建系统。
我发现在构建包时,可以在包目录的.build文件夹中找到生成的组合源。具体来说,代码与.build/browser/packages/<somthing>.js
一起包含源图文件。我还了解到我可以通过在包目录中使用meteor run-command .
来触发构建(btw以这种方式直接触发构建会创建具有不同命名方案的构建文件,这看起来像一个bug)。除了这个命名怪癖,这一切都运行正常,并允许我构建在Meteor之外运行的包。
然而,调试是另一回事。生成的源代码似乎没有正确排序,例如Chrome的开发人员工具,因此无法进行调试。另外,不包括主机环境中的源图也无济于事......但Meteor生成的js文件没有源图注释,只是在每行末尾注释了行号,所以我不太确定为什么它不能很好地调试。关于为什么会这样的想法?我希望能够以一种允许我生成可调试的组合源的方式使用Meteor的构建系统(在Meteor之外)。
答案 0 :(得分:0)
好吧,我仍然不完全确定它为什么会出现问题,但是通过uglifyjs --beautify
运行生成的代码会删除所有注释,并允许调试构建的包没有问题。所以,耶。我现在可以使用Meteor作为包构建工具。 :)