【发布时间】:2014-03-29 19:19:50
【问题描述】:
所以,我想构建一个 Meteor 智能包,它可以在 Meteor 的运行时环境内部和外部工作。基本上,当在 Meteor 之外运行时,该库将具有较少(或替代)的功能。换句话说,我的代码里面会有这个:
if (typeof Meteor !== 'undefined') {
// Meteor specific functionality
}
因为我正在开发这个库作为 Meteor 的智能包,并且我依赖 Meteor 的包构建系统。
我发现在构建包时,可以在包目录的 .build 文件夹中找到生成的组合源。具体来说,代码与源映射文件一起在.build/browser/packages/<somthing>.js 中。我还了解到我可以通过在包目录中使用meteor run-command . 来触发构建(顺便说一句,以这种方式直接触发构建会创建具有不同命名方案的构建文件,这似乎是一个错误)。除了这个命名怪癖之外,这一切都很好,并且允许我构建在 Meteor 之外运行的包。
但是,调试是另一回事。生成的 sourcemap 似乎无法正确排列,例如 Chrome 的开发人员工具,因此无法调试。另外,在主机环境中不包括源映射也无济于事......但是 Meteor 生成的 js 文件没有源映射注释,只是在每行末尾注释了行号,所以我不太确定为什么它不能很好地调试。关于为什么会发生这种情况的任何想法?我希望能够以一种允许我生成可调试的组合源(在 Meteor 之外)的方式使用 Meteor 的构建系统。
【问题讨论】:
-
我知道这并不能完全回答你的问题,但一般的方法是制作一个通用项目,然后制作一个单独的 Meteor 包,它基本上只是一个 package.js 文件和一个指向实际项目仓库的 git 子模块。
-
是的,我就是喜欢 Meteor 写包的风格。所有的组件都已经准备好了,这只是我正在尝试解决的调试问题。
标签: javascript meteor package meteorite