2014-02-26 53 views
0

因此,我想构建一个流星智能软件包,它可以在Meteor的运行环境内外工作。基本上,当在Meteor之外运行时,图书馆将具有较少(或替代)的特征。换句话说,我的代码将有这它:构建流星智能软件包,在流星外工作

if (typeof Meteor !== 'undefined') { 
    // Meteor specific functionality 
} 

因为我开发这个库作为一个聪明的包流星,而我依靠流星的软件包构建系统。

我发现当构建包时,生成的组合源可以在包目录中的.build文件夹中找到。具体而言,代码位于.build/browser/packages/<somthing>.js以及源映射文件中。我还了解到,我可以通过在软件包目录中使用meteor run-command .触发构建(顺便说一下,触发构建直接以这种方式创建具有不同命名方案的构建文件,这看起来像一个错误)。除了这个命名怪癖外,这一切都很好,并允许我构建在Meteor之外运行的软件包。

但是,调试是另一回事。例如,Chrome的开发人员工具生成的源图似乎没有正确排列,使得无法进行调试。另外,在主机环境中不包括sourcemap也没有帮助......但流星生成的js文件没有源映射注释,只是在每行末尾注释了行号,所以我不太确定为什么它不能很好地调试。任何想法为什么发生这种情况?我很乐意使用Meteor的构建系统,这样我就可以生成可调试的组合源代码(Meteor除外)。

+1

我知道这并不完全回答你的问题,但一般的做法是做一个通用项目,然后制作一个单独的Meteor包,它基本上只是一个package.js文件和一个git指向实际项目回购的子模块。 – sbking

+0

是的,我只是喜欢写Meteor风格的包。所有的组件都已经在那里做这个工作,这只是我试图弄清楚的调试事情。 – speigg

回答

0

那么,我仍然不完全确定它为什么会出现问题,但通过uglifyjs --beautify运行生成的代码将删除所有注释并允许构建的包无调试地被调试。所以,耶。我现在可以使用Meteor作为包构建工具。 :)