Javascript 构建Meteor智能包,在Meteor之外工作

Javascript 构建Meteor智能包,在Meteor之外工作,javascript,meteor,package,meteorite,Javascript,Meteor,Package,Meteorite,所以,我想构建一个Meteor智能包,它在Meteor的运行时环境内外工作。基本上,当在Meteor之外运行时,该库将具有更少或其他功能。换句话说,我的代码将包含以下内容: if (typeof Meteor !== 'undefined') { // Meteor specific functionality } 因为我正在开发这个库作为Meteor的智能包,并且我依赖Meteor的包构建系统 我发现在构建包时,可以在包目录中的.build文件夹中找到生成的组合源。具体来说,代码位于

所以,我想构建一个Meteor智能包,它在Meteor的运行时环境内外工作。基本上,当在Meteor之外运行时,该库将具有更少或其他功能。换句话说,我的代码将包含以下内容:

if (typeof Meteor !== 'undefined') {
    // Meteor specific functionality
}
因为我正在开发这个库作为Meteor的智能包,并且我依赖Meteor的包构建系统

我发现在构建包时,可以在包目录中的.build文件夹中找到生成的组合源。具体来说,代码位于.build/browser/packages/.js和一个sourcemap文件中。我还了解到,我可以使用meteor run命令触发构建。在包目录中,顺便说一句,以这种方式直接触发构建会创建具有不同命名方案的构建文件,这似乎是一个bug。除了这个命名怪癖,这一切都很好,并允许我构建运行在Meteor之外的包


然而,调试是另一回事。例如,在Chrome的开发者工具中,生成的sourcemap似乎没有正确排列,这使得调试变得不可能。另外,在主机环境中不包含sourcemap也没有帮助。。。但是Meteor生成的js文件没有sourcemap注释,只是在每一行的末尾注释了行号,所以我不太确定为什么调试不好。你知道为什么会这样吗?我希望能够以一种方式使用Meteor的构建系统,使我能够生成在Meteor之外也可调试的组合源代码

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

我知道这并不能完全回答你的问题,但一般的做法是制作一个通用项目,然后制作一个单独的Meteor包,它基本上只是一个package.js文件和一个指向实际项目回购的git子模块。是的,我喜欢Meteor风格的编写包。所有的组件都已经准备好了,这只是我想弄清楚的调试问题。